2010-01-12 12 views
8

मैंने नेटबीन्स का उपयोग WSDL url से वेब सेविस क्लाइंट कोड उत्पन्न करने के लिए किया था। लेकिन मैं कोड का उपयोग कर रन टाइम पर एंडपॉइंट पता नहीं बदल सकता।रन टाइम पर वेब सेवा एंडपॉइंट पता बदलें

कृपया उस समस्या को हल करने में मेरी मदद करें! BindingProvider को

1) कास्ट port और BindingProvider.ENDPOINT_ADDRESS_PROPERTY संपत्ति

MyService service = new MyService(); 
MyPort port = service.... 
BindingProvider bindingProvider = (BindingProvider) port; 
bindingProvider.getRequestContext().put(
BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://New.Endpoint/service"); 

2) आप उत्पन्न सेवा निर्माता जो पैरामीटर के रूप में डबल्यूएसडीएल यूआरएल लेता कॉल कर सकते हैं निर्दिष्ट करें:

उत्तर

12

आप इसे दो तरह से कर सकते हैं।

QName qname = new QName("http://serviceuri/", "service"); 
String wsdl = "http://New.Endpoint/service?wsdl"; 
MyServiec service = new MyServiec(new URL(wsdl), qname); 
MyPort port = check...; 
3

आप इसे सेवा के निर्माता से सब कुछ कर सकते हैं। जेएक्स-डब्ल्यूएस ने आपके लिए कन्स्ट्रक्टर के विभिन्न रूप तैयार किए होंगे। यह मूल रूप से ऊपर जैसा चंद्रमा के उत्तर में समाधान # 2 के रूप में वर्णित है।

हालांकि मुझे नहीं लगता कि आप उस नाम में एक बार फिर नामस्थान और सेवा नाम कोड चाहते हैं। बस करें:

 
URL wsdl = new URL("http://New.Endpoint/service?wsdl"); 
MyService wsService = new MyService(wsdlURL); 
संबंधित मुद्दे