كيف يمكنني تحديد المضيف الميناء عند الوصول إلى خدمة ويب من جاكس-WS-إنشاء مدونة ؟

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

  •  19-08-2019
  •  | 
  •  

سؤال

لدي ملف WSDL على خدمة ويب.أنا باستخدام جاكس-WS/wsimport لإنشاء واجهة عميل خدمة ويب.أنا لا أعرف في وقت مبكر المضيف أن خدمة الإنترنت سوف تكون قيد التشغيل ، وأنا أضمن أنه لن يكون http://localhost:8080.كيف يمكنني تحديد URL المضيف في وقت التشغيل مثلمن سطر الأوامر الحجة ؟

ولدت منشئ MyService(URL wsdlLocation, QName serviceName) لا يبدو مثل ما أريد ، لكن ربما هو ؟ ربما يكون واحدا من المتغيرات Service.getPort(...)?

وذلك بفضل!

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

المحلول

ومنشئ يجب أن تعمل بشكل جيد لتلبية الاحتياجات الخاصة بك، عند إنشاء MyService، تمر عليه عنوان الموقع من WSDL تريد أي <لأ href = "HTTP: // someurl: someport / خدمة اختصار" يختلط = "نوفولو noreferrer" > HTTP: // someurl:. someport / خدمة اختصار

نصائح أخرى

إذا كان لديك نظرة في مصدر ولدت قريب من منشئ ولدت، يجب أن تكون قادرة على معرفة ما يتم تنفيذه فيه من منشئ افتراضي، ينبغي أن ننظر شيئا مثل:

public OrdersService() {
    super(WSDL_LOCATION, new QName("http://namespace.org/order/v1", "OrdersService"));
}

ويجب أن تكون قادرة على العثور على مواطنه من WSDL_LOCATION في حقل ثابت للأعلى في الصف.

في التعليمات البرمجية التي تم إنشاؤها (على سبيل المثال:يقول "HelloWorldWebServiceImplService" ) انظر في كتلة ثابتة على أعلى والتي سوف يكون إشارة إلى WSDL url أو ملف wsdl الذي هو تحت META-INF.

 /*
static {
    URL url = null;
    try {
        url = new URL("http://loclahost/HelloWorld/HelloWorldWebServiceImpl?wsdl");
    } catch (MalformedURLException e) {
        java.util.logging.Logger.getLogger(HelloWorldWebServiceImplService.class.getName())
            .log(java.util.logging.Level.INFO, 
                 "Can not initialize the default wsdl from {0}", "http://loclahost/HelloWorld/HelloWorldWebServiceImpl?wsdl");
    }
    WSDL_LOCATION = url;
}
*/

بمجرد تعليق هذه تحتاج أيضا إلى التعليق الخروج الافتراضي construtor وغني عن القول intialize ثابت WSDL_LOCATION = null ؛ (null) لذلك سوف لا يكون لديك اثنين من منشئات كما هو مبين أدناه.

public final static URL WSDL_LOCATION = null;
public HelloWorldWebServiceImplService(URL wsdlLocation) {
    super(wsdlLocation, SERVICE);
}

public HelloWorldWebServiceImplService(URL wsdlLocation, QName serviceName) {
    super(wsdlLocation, serviceName);
}

استدعاء خدمة ويب : الآن في العميل الاتصال حيث يمكنك إنشاء هذا الكائن تمرير URL خدمة ويب حجة كما هو موضح

   //You can read mywebserviceURL from property file as String.
    String mywebserviceURL = "http://myqamachine.com/HelloWorld/HelloWorldWebServiceImpl?wsdl"
    URL WsURL = new URL(mywebserviceURL);
    HelloWorldWebServiceImplService webService = new HelloWorldWebServiceImplService(WsURL);

حتى هنا يمكنك أن نقطة url خدمة ويب بشكل حيوي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top