Spring के WebServiceTemplate के लिए फ़ॉरवर्ड प्रॉक्सी
प्रॉक्सी-कॉन्फ़िगर किए गए HttpClient 5 ट्रांसपोर्ट को WebServiceTemplate से जोड़ें और SOAP प्रेषक के आवश्यक हेडर इंटरसेप्टर को बनाए रखें।
WebServiceTemplate अपने WebServiceMessageSender के माध्यम से भेजता है। जब SOAP गंतव्य को फ़ॉरवर्ड प्रॉक्सी की आवश्यकता हो, तो उस प्रेषक के HTTP क्लाइंट को कॉन्फ़िगर करें।
Apache HttpClient 5 उपलब्ध होने पर Spring WS 4.1 के लिए:
var http = org.apache.hc.client5.http.impl.classic.HttpClients.custom()
.setProxy(new org.apache.hc.core5.http.HttpHost(
"http", "proxy.example", 8080))
.addRequestInterceptorFirst(
new org.springframework.ws.transport.http
.HttpComponents5ClientFactory.RemoveSoapHeadersInterceptor())
.build();
var sender = new org.springframework.ws.transport.http
.HttpComponents5MessageSender(http);
webServiceTemplate.setMessageSender(sender);webServiceTemplate ऐप्लिकेशन का मौजूदा टेम्पलेट है। इसका SOAP सेवा URI गंतव्य ही रहता है; HTTP क्लाइंट मध्यस्थ रखता है, जो उस मार्ग की अनुमति होने पर HTTP प्रॉक्सी सूची से कोई सार्वजनिक उम्मीदवार हो सकता है।
कस्टम-क्लाइंट कंस्ट्रक्टर प्रेषक का सामान्य हेडर इंटरसेप्टर नहीं जोड़ता। क्लाइंट जोड़ते समय इसे बनाए रखें: यह SOAP द्वारा दिए गए उन ट्रांसपोर्ट हेडर को हटाता है जिन्हें Apache की अनुरोध प्रोसेसिंग प्रबंधित करती है। क्लाइंट फ़ैक्टरी के डिफ़ॉल्ट से बनाया गया प्रेषक इस एकीकरण को बनाए रखने का दूसरा निर्माण मार्ग है।
आवश्यक प्रॉक्सी क्रेडेंशियल और टाइमआउट कस्टम क्लाइंट पर उसके अपने समर्थित इंटरफ़ेस के माध्यम से जोड़ें। प्रेषक की सेटर विधियाँ पहले से दिए गए क्लाइंट को कॉन्फ़िगर करने का विकल्प नहीं हैं।
टेम्पलेट के कार्यभार के लिए क्लाइंट बनाए रखें और बंद करते समय स्वामित्व वाले संसाधन बंद करें। यह उदाहरण HttpClient 5 प्रेषक का उपयोग करता है; org.apache.http आयात करने वाले Spring WS उदाहरण दूसरी क्लाइंट पीढ़ी का वर्णन करते हैं।