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 ਉਦਾਹਰਨਾਂ ਦੂਜੀ ਕਲਾਇੰਟ ਪੀੜ੍ਹੀ ਦਾ ਵਰਣਨ ਕਰਦੀਆਂ ਹਨ।