मैं अपने JAXWS क्लाइंट का उपयोग कर रहे पते को गतिशील रूप से कैसे बदल सकता हूं? यह क्लाइंट wsimport द्वारा उत्पन्न किया गया था।JAXWS - एंडपॉइंट पता कैसे बदलें
उत्तर
अपाचे सीएक्सएफ का उपयोग कर समस्या हल हो गई।
कोड की केवल दो पंक्तियों के साथ! यहां स्निपेट है:
URL url_wsdl = new URL("http://myserver/myservice?wsdl");
Service service = Service.create(url_wsdl, new QName("http://myaddress...", "ServiceName"));
return service.getPort(MyJAXWSPortClass.class);
का उपयोग नहीं कर सकता/यह काम करना चाहिए, हालांकि इस तरह की एक नई सेवा वस्तु का निर्माण करना एक अच्छा समाधान नहीं है। यह डब्ल्यूएसडीएल को नए एंडपॉइंट से फिर से पार्स करने का कारण बनता है और यह करना बहुत महंगा है। @ मैकडॉवेल का संदर्भित पोस्ट यह पूछने का सबसे अच्छा तरीका है कि यह पूछा जा रहा है: http://stackoverflow.com/questions/3569075/jaxws-service-client –
@ हेल्टरस्सेलर: सहमत है, लेकिन कुछ स्थितियों में यह कीमत उपेक्षित है, उदाहरण के लिए जब एक एप्लिकेशन को स्टार्टअप पर केवल एक बार इस पोर्ट को मैप करना होगा। –
यह केवल तभी काम करता है जब सर्वर "http: // myserver/myservice? Wsdl" ऑनलाइन हो। यदि आपके पास कई एप्लिकेशन हैं, तो इसका मतलब है कि उन्हें सीधे परिभाषित क्रम में तैनात करना, यह एक समस्या हो सकती है (और चक्रीय निर्भरताओं के मामले में भी असंभव) – GKislin
मुझे यकीन नहीं है कि अगर आप wsimport का उपयोग करते हैं तो यह कैसे करें। मेरे पास एक ही समस्या थी, इसलिए मैंने मेरे लिए क्लाइंट कोड बनाने के लिए इंटेलिज आईडीईए (संस्करण 9) का उपयोग किया। यह एक सेवा एंडपॉइंट कन्स्ट्रक्टर प्रदान करता है जो wsdl url में लेता है।
मैं wsimport का उपयोग कर समाधान ढूंढ रहा हूं। Intellij IDEA –
आप बाइंडिंगप्रोवाइडर इंटरफ़ेस का उपयोग करके इसे प्राप्त कर सकते हैं।
/**
* The following snippets shows how to set a custom endpoint for a JAX-WS generated WebClient on runtime
*/
// Get the service and the port
SampleService service = new SampleService();
Sample port = service.getESamplePort();
// Use the BindingProvider's context to set the endpoint
BindingProvider bp = (BindingProvider)port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://www.aviramsegal.com/ws/sample");
/* Optional credentials */
bp.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "user");
bp.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password");
port.callSampleMethod();
मैं पेपैल एकीकरण के लिए नया हूँ, मैं अनुकूली भुगतान एपीआई के बारे में निश्चित नहीं हूँ। लेकिन हमें यह जांचने का विशेषाधिकार है कि क्या विशिष्ट ईमेल आईडी पेपैल में खाता है या का उपयोग नहीं कर रहा है GetVerifiedStatus विधि।
ईमेल को सत्यापित करने के लिए नीचे दिए गए सैंडबॉक्स wsdl URL का उपयोग करें
यूआरएल: https://svcs.sandbox.paypal.com/AdaptiveAccounts?wsdl
प्रतिक्रिया की तरह नीचे
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header/>
<soapenv:Body>
<ns2:GetVerifiedStatusResponse xmlns:ns2="http://svcs.paypal.com/types/aa">
<responseEnvelope>
<timestamp>2015-07-20T23:42:46.661-07:00</timestamp>
<ack>Success</ack>
<correlationId>5cea9a8575ab9</correlationId>
<build>17345626</build>
</responseEnvelope>
<accountStatus>UNVERIFIED</accountStatus>
<countryCode>IN</countryCode>
<userInfo>
<emailAddress>[email protected]</emailAddress>
<accountType>PERSONAL</accountType>
<accountId>6KD7EVWM2E2AQW</accountId>
<name>
<salutation/>
<firstName>anand</firstName>
<middleName/>
<lastName>anand</lastName>
<suffix/>
</name>
<businessName/>
</userInfo>
</ns2:GetVerifiedStatusResponse>
</soapenv:Body>
</soapenv:Envelope>
नोट होगा: जबकि ठूंठ बनाने के रूप में नीचे अंत बिंदु सेट करने के लिए भूल गया नहीं है । अगर हम इसे सेट नहीं कर रहे हैं, तो हमें अपेक्षित आउटपुट नहीं मिल सकता है। जोड़ने के लिए विधि नीचे
String endpointURL = "https://svcs.sandbox.paypal.com/AdaptiveAccounts/GetVerifiedStatus";
उपयोग endpoint
private static void addEndPoint(AdaptiveAccountsPortType port,
String endpointURL) {
BindingProvider bp = (BindingProvider)port;
bp.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, endpointURL);
/*List hchain = bp.getBinding().getHandlerChain();
if (hchain == null) {
hchain = new ArrayList();
}
hchain.add(new HTTPUserAgentHandler());
bp.getBinding().setHandlerChain(hchain);*/
}
- 1. रनटाइम पर पता/डब्लूएसडीएल एंडपॉइंट एड्रेस का पता बदलें?
- 2. एकाधिक परीक्षणों के लिए एंडपॉइंट पता कैसे बदलें?
- 3. jaxws
- 4. डब्ल्यूसीएफ एंडपॉइंट सापेक्ष पता
- 5. रन टाइम पर वेब सेवा एंडपॉइंट पता बदलें
- 6. सोपयूआई एंडपॉइंट पता बदलता है
- 7. सीएक्सएफ जैक्सव्स एंडपॉइंट सापेक्ष प्रकाशन पता
- 8. ग्लासफ़िश जेनरेटेड डब्लूएसडीएल सेवा एंडपॉइंट पता ओवरराइड
- 9. jaxws-ri और jaxws-rt के बीच क्या अंतर है?
- 10. डब्ल्यूसीएफ रिमोट एंडपॉइंट का आईपी पता कैसे प्राप्त करें?
- 11. बदलें यूआरएल पता पीएचपी
- 12. एक्सिस बदलें साबुन: पता
- 13. jaxws-maven-plugin 2.2 NoSuchMethodError()
- 14. रिमोट सॉकेट एंडपॉइंट का आईपी पता प्राप्त करना
- 15. jaxws 2.1.5 वेबलॉगिक पर 10.3.1 पूर्व-स्थापित jaxws 2.1.1 के बजाय?
- 16. वेब सेवा एंडपॉइंट पता से डब्लूएसडीएल प्राप्त करना
- 17. जैक्स-डब्ल्यूएस एंडपॉइंट
- 18. मेरे एपी एंडपॉइंट
- 19. आरईएसटी आधारित एंडपॉइंट
- 20. ChannelFactory.Endpoint पर पता संपत्ति शून्य थी। चैनलफैक्टरी के एंडपॉइंट में वैध पता होना चाहिए
- 21. ब्राउज़र में URL बदलें पता पट्टी
- 22. याहू ओपनिड डिस्कवरी एंडपॉइंट
- 23. एंडपॉइंट क्या है?
- 24. डब्ल्यूसीएफ में "एंडपॉइंट" क्या है?
- 25. मैं क्लाइंट साइट में प्रोग्रामेटिक रूप से एंडपॉइंट पता कैसे बदल सकता हूं?
- 26. प्रोग्रामेटिक रूप से निर्मित एंडपॉइंट
- 27. क्या मैं एक ही एंडपॉइंट
- 28. phpmailer का उपयोग करके लिफाफा प्रेषक पता कैसे बदलें?
- 29. कॉन्फ़िगरेशन फ़ाइल से एंडपॉइंट पढ़ना
- 30. क्यों पता लगाना क्यों नाम बदलें() विफल?
http://stackoverflow.com/questions/649019/how-do-i-specify-host-and-port-when-accessing- देखें ए-वेब-सर्विस-से-जैक्स-डब्ल्यूएस-जेनरेट –
* गतिशील * मतलब * रनटाइम * पर * है? –
देखें http://stackoverflow.com/questions/3569075/jaxws-service-client – McDowell