Jax-WS: كيفية الحصول على مقبض لبدء/نهاية معالجة رسالة الصابون الواردة

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

  •  05-07-2019
  •  | 
  •  

سؤال

الموقف: خدمة الويب Jax-WS على WebLogic AppServer ؛ تطوير WSDL الأول ، التخصيصات JaxB في ملف الربط الخارجي.

أرغب في الحصول على مقبض مع سياق JaxB الفعلي الذي سيعالج رسالة XML الصابون الواردة ، قبل لقد تم التخلص منه في كائنات جافا.

ثم أود احصل على unmarshaller من سياق Jaxb هذا - الذي سيتم استخدامه بالفعل أثناء عدم الممارسين. ثم قم بإعداد بعض خصائص هذا unmarshaller (مثل المستمع و idresolver).

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

المحلول

الجديد usesjaxbcontex التعليقات التوضيحية jaxbcontextfactoryin jaxws 2.1.5 - jaxb 2.2 على الأرجح ما أحتاجه لذلك. ومع ذلك ، يستخدم WebLogic 10.3.1 Jaxws 2.1.1 ، Jaxb 2.1.3.

حل آخر هو الاستخدام:

@WebServiceProvider(portName = "Port", serviceName = "Service", targetNamespace = "tns",                                                                                                        wsdlLocation = "/wsdls/x.wsdl")
@BindingType(value = "http://schemas.xmlsoap.org/wsdl/soap/http")
@ServiceMode(value = javax.xml.ws.Service.Mode.MESSAGE)
public class ServiceProvider implements Provider<SOAPMessage>

هذا يتيح الوصول إلى رسالة SOAP XML. لا يزال يتعين عليّ معرفة أين يمكن العثور على اسم الطريقة.

بدلاً من:

@WebService(portName = "Port", serviceName = "Service", targetNamespace = "tns",
wsdlLocation = "/wsdls/x.wsdl", endpointInterface = "tns.PortType")
@BindingType("http://schemas.xmlsoap.org/wsdl/soap/http")
public class ServicePort implements PortType
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top