การทำงานร่วมกันของเว็บเซิร์ฟเวอร์ WCF กับ Java ดูเหมือนจะมีปัญหาอย่างน่าประหลาดใจ ทรัพยากรที่ดี?


13

ด้วยโครงการล่าสุดทีมงาน dev. Net ของเราได้รับมอบหมายให้ทำงานร่วมกับโฮสต์บริการเว็บ java ทั่วโลกและเรามีปัญหาที่น่าประหลาดใจมาก (แน่นอนว่าเราไม่แปลกใจอีกต่อไป) เนื่องจาก XML ที่สร้างขึ้นโดย WCF ไม่ได้รับการยอมรับจากบริการ java

ดูเหมือนว่ายังไม่มีข้อมูลที่ดีมากนักที่จะค้นหาในเรื่องนี้เราได้รับเคล็ดลับดี ๆ จากบล็อก WCF ที่ยอดเยี่ยมของ Yaron Nave, http://webservices20.blogspot.comและบนฟอรัม MSDN WCF http: //social.msdn.microsoft.com/Forums/en-US/wcf/threads

มีใครบ้างในที่นี้ที่รู้สึกว่าพวกเขารู้สึกแย่และรู้ถึงทรัพยากรที่ชัดเจนในเรื่องนี้หรือไม่? จะสนใจในเคล็ดลับเกี่ยวกับหนังสือบล็อกหรือเว็บไซต์ใด ๆ

แก้ไข:
ฉันขาดการตั้งค่าคำตอบที่ได้รับการยอมรับในเธรดนี้เนื่องจากคำตอบที่ดีที่สุดสองคำตอบมีค่าบางอย่าง:
1. เราอาจท้ายด้วยการใช้ HTTP Webrequest มากกว่าการต่อสู้ WCF
2. แต่ WCF Express Interop Bindings 1.0 ก็เป็นคำแนะนำที่สมเหตุสมผลเช่นกัน


ฉันไม่รู้อะไรเกี่ยวกับ WCF แต่เป็นการผลิตแพ็คเก็ต XML ที่ใช้ SOAP หรือเป็นเพียงชิ้นส่วนของ XML ที่เซอร์วิส RESTful สามารถใช้ได้หรือไม่
Martijn Verburg

1
ส่งคืน XML, JSON หรือ RDF + XML
อลัน B

คุณสามารถยกตัวอย่างสิ่งที่ผิดพลาดระหว่างไคลเอ็นต์ wcf และ java webservice ได้หรือไม่? คุณหมายถึง webservice = soap หรืออะไรที่ต่างออกไป
k3b

1
มันอยู่นอกขอบเขตของคำถามนี้เพื่อไปที่เฉพาะคุณสามารถตรวจสอบโปรไฟล์ของฉันในกองล้นสำหรับตัวอย่าง ที่นี่ฉันแค่อยากจะฟังว่าใครมีปัญหาเดียวกันกับลูกค้า WCF (หรือ. Net โดยทั่วไป) ทำงานร่วมกันกับ webservices บนแพลตฟอร์มอื่น ๆ
Bjørn

คำตอบ:


15

อ่าใช่ ... SOAP จอกศักดิ์สิทธิ์แห่งการคำนวณ ภาษากลางที่สัญญาว่าจะทำงานร่วมกันระหว่างระบบต่างๆทั่วโลก

และจากนั้นคุณจะได้รับความแตกต่างระหว่างการใช้งาน SOAP บน Java และ PHP และ. NET หรือแม้กระทั่งระหว่างบริการ WebSphere SOAP และไคลเอนต์ Apache SOAP อย่ากังวลกับมาตรฐานความเข้ากันได้ของ WS-I ที่ต่างกัน ตอนนี้โปรดบอกฉันว่าทำไมคุณต้องมีมาตรฐานเข้ากันได้สำหรับโปรโตคอลที่ถูกสร้างขึ้นสำหรับการทำงานร่วมกัน , พูดคุยเกี่ยวกับเรื่องน่าขัน (และผมหมายถึงถ้อยคำที่จริงไม่ได้เป็นแบรนด์ Alanis Morrissette ของการประชด )

ครั้งเดียวที่คุณจะไม่พบปัญหาในการรับจุดปลาย SOAP สองจุดที่ติดต่อกันคือเมื่อทั้งคู่อยู่บนแพลตฟอร์มเดียวกันและในกรณีส่วนใหญ่แพลตฟอร์มนั้นจะมีโปรโตคอลการทำงานระยะไกลที่มีประสิทธิภาพมากกว่า

สิ่งที่ฉันพูดที่นี่คือส่วนใหญ่สบู่ไม่มีประโยชน์ ตอนนี้สบู่ตัวเล็กฉันใช้มันทุกวันและฉันรู้สึกขอบคุณที่คนส่วนใหญ่ทำแบบเดียวกัน

ที่ถูกกล่าวว่าหากคุณยืนยันที่จะตีหัวของคุณกับผนังอิฐ นี่เป็นจุดเริ่มต้นที่ดีที่Microsoft มีชุดการเชื่อมโยงเพื่อเปิดใช้งานการทำงานร่วมกันกับเซิร์ฟเวอร์ Java ส่วนใหญ่ ส่วนที่สนุกที่สุดของหลักสูตรคือการค้นหาว่าบริการใดที่ทำงานร่วมกับบริการที่คุณรวมเข้าด้วยกัน


5
สบู่เป็น CORBA ใหม่ :)
gbjbaanb

อย่างใดฉันดูเหมือนจะทำมันประสบความสำเร็จค่อนข้างบ่อยในโครงการการรวมลูกค้า เห็นได้ชัดว่า YMMV
David J. Liszewski

9

ในความคิดของฉันการสังเกตของคุณค่อนข้างแม่นยำ การใช้งานระดับสูงของการสื่อสารด้วย XML มักจะไม่เข้ากันได้กับแพลตฟอร์มที่แตกต่างกันแม้ว่าพวกเขาทั้งสองจะถูกเรียกว่า "SOAP" ความแตกต่างที่ลึกซึ้งในการใช้งานอาจอยู่ในขอบเขตของมาตรฐานที่นำไปใช้ทำให้เกิดปัญหาในการใช้งานจริง

คำแนะนำของฉันสำหรับผู้ให้บริการ: ใช้การใช้งานง่าย ๆ มากกว่าการใช้งานที่ซับซ้อนและดีกว่าในทางทฤษฎี ตัวอย่างเช่นอย่ารวมรูปแบบการตรวจสอบสิทธิ์ที่ซับซ้อนมาก ๆ หากคุณไม่ต้องการ

คำแนะนำของฉันสำหรับผู้บริโภคด้านบริการ (คุณฉันเข้าใจ): เมื่อสื่อสารกับการใช้งานระดับสูงบนแพลตฟอร์มที่แตกต่างจากแพลตฟอร์มของคุณให้ลดระดับการใช้งานระดับล่างลง ทันใดนั้นจะกลายเป็นเรื่องง่ายหากคุณเพียงแค่คิดว่า XML ที่แท้จริงในการส่งคืออะไรแล้วใช้วิธีการเข้ารหัสที่ดีตามปกติเพื่อให้บรรลุผลสำเร็จซึ่งเป็นอีกทางเลือกหนึ่งในการยืนยันการใช้งานระดับสูงของแพลตฟอร์มของคุณเอง

หวังว่ามันจะไม่เป็นนามธรรมเกินไป กล่าวโดยย่อเมื่อคุณอยู่บนแพลตฟอร์ม. NET ที่เชื่อมต่อกับแพลตฟอร์ม Java คุณอาจต้องการรวบรวมส่วนหัวและ xml ใน HttpWebRequest และส่งออกไปในทางนั้น


4

คุณจะมีปัญหาเดียวกันกับการใช้บริการเว็บ PHP ด้วย

คำตอบเดียวของเราคือเปลี่ยนประเภทโปรโตคอลเป็น REST แทน SOAP เราไม่เคยได้รับ SOAP เพื่อทำงานร่วมกันเลยสำหรับ Simple!


ในกรณีส่วนใหญ่เราไม่มีทางเลือกที่จะเปลี่ยนบริการเว็บที่มีอยู่ในทางใดทางหนึ่งเราจะต้องเชื่อมต่อกับพวกเขาด้วย SOAP ไม่ว่าจะเกิดอะไรขึ้น ดังนั้นฉันจึงไม่กลัวคำตอบสำหรับคุณ ;)
Bjørn

1
> "ไม่มีตัวเลือกในการเปลี่ยนบริการเว็บที่มีอยู่ในลักษณะใด ๆ " ในกรณีนั้น รั้งตัวเองคุณอยู่ในการขี่คร่าวๆ ฉันเพิ่งกู้คืนจาก 2 สัปดาห์ของการต่อสู้หัวพยายามโทรบริการเว็บ wcf / soap จาก java / android ความรอดของฉันคือการที่ฉันไม่เหมือนกับคุณ - ได้เข้าถึงบริการและทำให้มันเป็นปลายทางของ REST / JSON ทางที่จะไป. ถ้าคุณสามารถ.
BaBu

@ Bjørnโอ้ดีขอโทษที่จะบอกคุณนี้ แต่เพื่อใช้คำศัพท์ทางเทคนิคคุณกำลังเมา ฉันเดาคำตอบเดียวคือหยุดใช้ WCF และใช้ไคลเอ็นต์ SOAP อื่น
gbjbaanb

ทีมงานของเราหัวเราะและร้องไห้จากคำตอบของคุณ :) ขอบคุณสุภาพบุรุษ
Bjørn
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.