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 చిరునామా అనుకూలీకరణ ప్రాక్సీని నింపగలదు.

Apache HTTP ఫ్రేమింగ్‌ను సృష్టించే ముందు SOAP అందించే Content-Length మరియు Transfer-Encoding లను తొలగించే ఇంటర్‌సెప్టర్‌ను withDefaults నిలుపుకుంటుంది. అక్కడ ప్రాక్సీ అనుకూలీకరణను జోడించడం ఆ సమన్వయం నగ్న క్లయింట్‌తో భర్తీ కాకుండా నిరోధిస్తుంది. విడిగా నిర్మించిన Apache క్లయింట్ కోసం, Spring-WS యొక్క హెడర్ తొలగింపు ఇంటర్‌సెప్టర్‌ను నిలుపుకోండి.

ఇంపోర్ట్‌లు మరియు పంపేవారి సృష్టిని సరిపోల్చండి. HttpComponentsMessageSender/org.apache.http ఉపయోగించే పాత ఉదాహరణలు Apache 4 ను ఉపయోగిస్తాయి, ఈ SimpleHttpComponents5MessageSender మరియు HttpHost ఇంటర్‌ఫేస్ కాదు.

SOAP క్లయింట్ యొక్క మొత్తం ఆయుష్షు కాలంలో చేతితో సృష్టించిన పంపేవారిని ఉంచి, తర్వాత దాని సాధారణ నాశనాన్ని ఏర్పాటు చేయండి. Spring నిర్వహించే బీన్ కంటైనర్ జీవిత చక్రాన్ని ఉపయోగించగలదు. ఇతర పంపేవారిని ఉంచే ఇతర టెంప్లేట్‌లు తమ స్వంత రవాణా కాన్ఫిగరేషన్‌ను ఉంచుకుంటాయి.

సంబంధిత వ్యాసాలు