import org.apache.hc.core5.http.HttpHost;
import org.springframework.ws.transport.http.HttpComponents5ClientFactory;
import org.springframework.ws.transport.http.SimpleHttpComponents5MessageSender;

var factory = HttpComponents5ClientFactory.withDefaults();
factory.addClientBuilderCustomizer(builder ->
    builder.setProxy(new HttpHost("http", "proxy.example", 8080)));

var sender = new SimpleHttpComponents5MessageSender(factory);
template.setMessageSender(sender);

ਕਾਲਾਂ ਤੋਂ ਪਹਿਲਾਂ ਇਸ ਭੇਜਣ ਵਾਲੇ ਨੂੰ ਮੌਜੂਦਾ template 'ਤੇ ਲਾਗੂ ਕਰੋ, ਸੇਵਾ ਦਾ URI, marshaller ਅਤੇ ਹੋਰ ਸੈਟਿੰਗਾਂ ਸੁਰੱਖਿਅਤ ਰੱਖੋ। ਇਹ Apache HttpClient 5 ਨਾਲ Spring-WS 4.1.0 ਹੈ। ਜੇ ਟੈਂਪਲੇਟ ਪਰਾਕਸੀ ਪ੍ਰਮਾਣਿਕਤਾ ਤੋਂ ਬਿਨਾਂ ਮਨਜ਼ੂਰਸ਼ੁਦਾ ਜਨਤਕ SOAP ਸੇਵਾ ਨੂੰ ਨਿਸ਼ਾਨਾ ਬਣਾਉਂਦਾ ਹੈ, ਤਾਂ HTTP ਪਰਾਕਸੀ ਸੂਚੀ ਤੋਂ HTTP ਪਤਾ ਅਨੁਕੂਲਕ ਦੀ ਪਰਾਕਸੀ ਭਰ ਸਕਦਾ ਹੈ।

withDefaults ਉਸ ਇੰਟਰਸੈਪਟਰ ਨੂੰ ਰੱਖਦਾ ਹੈ ਜੋ Apache ਵੱਲੋਂ HTTP ਫਰੇਮਿੰਗ ਬਣਾਉਣ ਤੋਂ ਪਹਿਲਾਂ SOAP ਵੱਲੋਂ ਦਿੱਤੇ Content-Length ਅਤੇ Transfer-Encoding ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ। ਉੱਥੇ ਪਰਾਕਸੀ ਅਨੁਕੂਲਕ ਜੋੜਨ ਨਾਲ ਉਸ ਏਕੀਕਰਨ ਨੂੰ ਨੰਗੇ ਕਲਾਇੰਟ ਨਾਲ ਬਦਲਣ ਤੋਂ ਬਚਾਇਆ ਜਾਂਦਾ ਹੈ। ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਬਣਾਏ Apache ਕਲਾਇੰਟ ਲਈ, Spring-WS ਦਾ ਹੈਡਰ ਹਟਾਉਣ ਵਾਲਾ ਇੰਟਰਸੈਪਟਰ ਰੱਖੋ।

ਇੰਪੋਰਟ ਅਤੇ ਭੇਜਣ ਵਾਲੇ ਦੀ ਬਣਾਵਟ ਨੂੰ ਮਿਲਾਓ। HttpComponentsMessageSender/org.apache.http ਵਰਤਣ ਵਾਲੀਆਂ ਪੁਰਾਣੀਆਂ ਉਦਾਹਰਣਾਂ Apache 4 ਵਰਤਦੀਆਂ ਹਨ, ਇਹ SimpleHttpComponents5MessageSender ਅਤੇ HttpHost ਇੰਟਰਫੇਸ ਨਹੀਂ।

SOAP ਕਲਾਇੰਟ ਦੀ ਪੂਰੀ ਉਮਰ ਲਈ ਹੱਥੋਂ ਬਣਾਇਆ ਭੇਜਣ ਵਾਲਾ ਰੱਖੋ ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਇਸ ਦਾ ਆਮ ਨਾਸ਼ ਪ੍ਰਬੰਧ ਕਰੋ। Spring ਵੱਲੋਂ ਪ੍ਰਬੰਧਿਤ ਬੀਨ ਕੰਟੇਨਰ ਦਾ ਜੀਵਨ ਚੱਕਰ ਵਰਤ ਸਕਦਾ ਹੈ। ਹੋਰ ਭੇਜਣ ਵਾਲੇ ਰੱਖਣ ਵਾਲੇ ਹੋਰ ਟੈਂਪਲੇਟ ਆਪਣਾ ਆਪਣਾ ਆਵਾਜਾਈ ਕੌਂਫਿਗਰੇਸ਼ਨ ਰੱਖਦੇ ਹਨ।

ਸੰਬੰਧਿਤ ਲੇਖ