HOW TO تجاوز Axis2 رؤوس طلب للخدمة على شبكة الإنترنت. NET؟

StackOverflow https://stackoverflow.com/questions/1041101

سؤال

ولدي لاستخدام خدمة ويب 3rd الطرف تنفيذها في. NET 2.0 (على IIS، بالطبع).

ولقد جعل عميل جافا. أنا أستخدم wsdl2java لتوليد كعب SOAP.

وكما يظهر مشروع أباتشي المحور الأصلي الآن غير المشرف عليها، وكنت أعاني من بعض المشاكل تحليل بعض الاستجابات من الخدمة، وتحويل العميل لاستخدام أحدث (1.5) نسخة من Axis2. الآن، فإن خدمة. NET لا تعترف حتى طلباتي.

وتمكنت من الحصول على "تجزئة معلومات" إيقاف (حيث "كعب" هو متغير من نوع MumbleStub الناتجة عن wsdl2java، وأنا تظهر ما هي عدة أسطر من التعليمات البرمجية كخط مروع هنا):

stub._getServiceClient().getOptions().setProperty( HTTPConstants.CHUNKED, Boolean.FALSE);

و.. حتى تعترف خدمة ما لا يقل عن طلبي <م> AS طلب، وإن كانت سيئة واحدة: "HTTP/1.1 400 Bad Request" هو استجابة الآن (في مقابل "مقدمة / ملخص" صفحة تقدم لي رابط لWSDL).

ولقد لاحظت أن ( "1") طلب محور زيارتها مختلفة رأس نوع المحتوى (النص / أكس، مقابل التطبيق / الصابون أكس)، وأنا أتساءل كيف لتغيير هذا الرأس الطلب، إذا كان هذا هو في الواقع المشكلة.

وبدلا من ذلك، وقد أي شخص آخر لهذه المشكلة؟ هي المشكلة حقا (undisplayable هنا، كما يبدو "حقن عنصر" إلى محرك بلوق) ... أكس version- "1.0" ... "XML الفوقية مقدمة سمة" أن Axis2 تضاف إلى بداية الطلب؟

WS-Deathstar، في الواقع.

هل كانت مفيدة؟

المحلول

وكما ذكرتم محتوى من نوع مختلف رأس أعتقد يحاول العميل لإرسال SOAP 1.2 الطلبات والتطبيق 3rd الطرف لا يفهم إلا SOAP 1.1

وحاول تغيير النسخة الصابون تستخدم يستخدم AFAIK AXIS2 SOAP 1.2 افتراضيا

stub._getServiceClient().getOptions().setSoapVersionURI(org.apache.axiom.soap.SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top