WCF to Java webservices interop, şaşırtıcı derecede sorunlu görünüyor. İyi kaynaklar var mı?


13

Son bir proje ile .Net tabanlı geliştirici ekibimiz, dünya çapında bir dizi java tabanlı web hizmeti ile entegre olmakla görevlendirildi ve gerçekten şaşırtıcı bir şekilde (iyi, kesinlikle daha fazla şaşırmadık) çok sayıda sorun yaşadık çünkü WCF tarafından oluşturulan XML, java servisleri tarafından kabul edilmez.

Ayrıca konuyla ilgili bulmak için çok iyi bir bilgi, biz Yaron Nave mükemmel WCF blog, bazı iyi ipuçları aldık gerçekten olmadığını görünüyor http://webservices20.blogspot.com ve ayrıca MSDN WCF forumunda http: //social.msdn.microsoft.com/Forums/en-US/wcf/threads .

Burada gerçekten bunu düşürdüğünü hisseden ve konuyla ilgili kesin kaynağı bilen biri var mı? Kitaplar, bloglar veya herhangi bir web sitesindeki ipuçlarıyla ilgilenirsiniz.

Düzenleme:
Ben en iyi iki cevap her biri bir değeri vardır, çünkü bu iş parçacığı üzerinde kabul edilen cevap ayarlama yırtılmış:
1. Biz muhtemelen WCF mücadele yerine daha fazla HTTP Webrequest uygulamaları yapmak ile sona erecek.
2. Ancak WCF Express Interop Bindings 1.0 da çok mantıklı bir ipucuydu.


WCF hakkında hiçbir şey bilmiyorum, ancak SOAP tabanlı XML paketleri mi yoksa sadece RESTful hizmeti tarafından tüketilebilecek bir XML yığını mı üretiyor?
Martijn Verburg

1
XML, JSON veya RDF + XML döndürür.
Alan B

wcf istemcisi ve java web hizmeti arasında neyin yanlış gittiğine dair örnekler verebilir misiniz? webservice = sabun mu yoksa farklı bir şey mi demek istiyorsun?
k3b

1
Spesifikasyonlara girmek bu sorunun kapsamı dışındadır, örnekler için yığın taşması üzerindeki profilime bakabilirsiniz. Burada, başkalarının WCF (veya genel olarak .Net) istemcileri ile aynı sorunu yaşıyorsa, diğer platformlara dayalı web servisleriyle birlikte çalışıp çalışmadığını duymak istiyorum.
Bjørn

Yanıtlar:


15

Ah evet ... SABUN, bereketli bilgi işlem kasesi. Dünyadaki sistemler arasında birlikte çalışma sözü veren bir lingua franca.

Ve sonra Java ve PHP ve .NET üzerindeki SOAP uygulamaları arasındaki farklara girersiniz. Hatta WebSphere SOAP hizmeti ile Apache SOAP istemcisi arasında bile. Farklı WS-I uyumluluk standartlarıyla uğraşmayı düşünmeyin. Eğer bir protokol için bir uyumluluk standardını neden ihtiyaç Şimdi söyle lütfen uyumluluk için inşa edilmiş ironik hakkında, konuşma (ve gerçek ironi demek ironi değil Alanis Morrissette marka ).

İki SOAP uç noktasının iletişim kurmasında sorun yaşamayacağınız tek zaman, ikisi de aynı platformda ve çoğu durumda platformun daha verimli bir uzaktan çalışma protokolüne sahip olacağı zamandır.

Burada söylediğim şey çoğunlukla SOAP'ın yararsız olmasıdır. Şimdi küçük sabun, bunu her gün kullanıyorum ve çoğu insanın aynısını yapması için minnettarım.

Eğer kafanı bir tuğla duvara çarpmakta ısrar ediyorsan. İşte başlamak için iyi bir yer Microsoft büyük Java sunucularının çoğu ile birlikte etkinleştirmek için bir dizi bağlantı vardır. Elbette eğlenceli olan, hangilerinin hangi servislerle entegre edildiğini bulmaktır.


5
SABUN yeni CORBA olduğunu :)
gbjbaanb

Her nasılsa, istemci entegrasyon projelerinde bunu oldukça sık yapıyorum. Görünüşe göre YMMV.
David J. Liszewski

9

Bence gözleminiz oldukça doğru. XML tabanlı iletişimin üst düzey uygulamaları, her ikisi de "SOAP" olarak adlandırılsa bile, genellikle farklı platformlarla uyumlu değildir . Muhtemelen her ikisi de uygulanan standart kapsamında uygulamadaki küçük farklılıklar gerçek hayatta kullanımda sorunlar yaratır.

Servis sağlayıcılar için tavsiyem: Çok karmaşık ve teorik olarak daha iyi bir uygulama yerine basit bir uygulama kullanın. Örneğin, ihtiyacınız yoksa, son derece karmaşık kimlik doğrulama düzenlerini eklemeyin.

Hizmet tüketicileri için tavsiyem (siz, sanırım): Sizinkinden farklı bir platformda yüksek düzeyli bir uygulama ile iletişim kurarken, daha düşük düzeyli bir uygulamaya geçin. Gerçek XML'in ne olduğunu anlamanız ve ardından bunu gerçekleştirmek için normal iyi kodlama uygulamalarını kullanmanız, kendi platformunuzun yüksek düzeyde uygulanmasında ısrar etmeye alternatif olarak aniden oldukça basitleşir.

Umarım çok soyut değildi. Kısacası , bir Java platformuna bağlanan .NET platformunda olduğunuzda, başlıkları ve xml'yi bir HttpWebRequest içinde bir araya getirmek ve bu şekilde göndermek isteyebilirsiniz.


4

PHP web hizmetlerini tüketirken de aynı sorunları yaşarsınız.

Buna tek cevabımız, protokol tipini SOAP yerine REST olarak değiştirmekti. Biz asla işbirliği için SOAP şeyler, Simple için çok şey var!


Çoğu durumda, mevcut web hizmetlerini hiçbir şekilde değiştirme seçeneğimiz yoktur, ne olursa olsun, onlara SOAP ile bağlanmamız gerekecektir. Bu yüzden korkarım cevap sizin için çözülmedi. ;)
Bjørn

1
> "mevcut web hizmetlerini herhangi bir şekilde değiştirme seçeneği yok" Bu durumda; Kendinizi hazırlayın, kaba bir yolculuk içindesiniz. Java / android'den bir wcf / soap web servisini aramaya çalışarak, 2 hafta kafa beceriyortan kurtuldum. Benim kurtuluşum, ben - aksine, hizmet erişim vardı ve bir REST / JSON uç noktası ortaya çıkarmak oldu. Gitme zamanı. Yapabilirsen.
BaBu

@ Bjørn oh iyi, bunu size söylediğim için üzgünüm ama teknik terimi kullanmak için berbatsınız. Sanırım tek cevap WCF kullanmayı bırakmak ve farklı bir SOAP istemcisi kullanmaktır.
gbjbaanb

Ekibimiz cevaplarınızdan gülüyor ve ağlıyor. :) Teşekkürler beyler.
Bjørn
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.