كيفية إجراء مكالمة من خلال javax.xml.ws.Service


Answers

يمكنك استخدام جاكس-وس كعميل.

في الأساس يمكنك استخدام وسيمبورت لإنشاء الطبقات كعب جافا التي التفاف خدمة الويب، ثم يمكنك استخدام تلك البذرة في رمز جافا الخاص بك. تهتم البذرة بجميع ترجمة شمل، سواء لطلبك أو ردك.

البرنامج التعليمي هنا: http://docs.oracle.com/javaee/5/tutorial/doc/bnayn.html
ابحث عن الجزء المسمى: "عميل جاكس-وس بسيط"

Question

إنشاء معيار جافا 7 مشروع جديد في الكسوف وتمكنت بنجاح للحصول على مثيل من javax.xml.ws.Service مثل ذلك:

  String wsdlURL = "http://example.com:3000/v1_0/foo/bar/SomeService?wsdl";
  String namespace = "http://foo.bar.com/webservice";
  String serviceName = "SomeService";
  QName serviceQN = new QName(namespace, serviceName);

  Service service = Service.create(new URL(wsdlURL), serviceQN);

هذا يعمل بشكل جيد في الطريقة الرئيسية، بقدر ما أستطيع أن أرى، أن يعمل جزء. ولكن لا أستطيع معرفة كيفية استخدامها في الواقع. في سوابوي أدعو هذه الخدمة نفسها مع طلب الذي يشبه ما يلي:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://foo.bar.com/webservice">
   <soapenv:Header/>
   <soapenv:Body>
      <web:SomeWebServiceRequest acAccountName="name" acAccountPassword="password">
         <SomeRequest>
            <id>012345678901234</id>
            <action>Fix</action>
         </SomeRequest>
      </web:SomeWebServiceRequest>
   </soapenv:Body>
</soapenv:Envelope>

كيف يمكنني أن أفعل نفس الطلب في جافا؟ هدفي هو أن لدي قائمة طويلة من هذه id s، وأنا بحاجة إلى تشغيل طلب من هذا القبيل لكل واحد منهم. القيام بذلك يدويا في سوابوي هو مزعج قليلا، لذلك أود أن أتمتة ذلك مع تطبيق وحدة تحكم جافا بسيطة.