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 ప్రాక్సీ జాబితా నుండి పబ్లిక్ అభ్యర్థి కావచ్చు.
కస్టమ్-క్లయింట్ కన్స్ట్రక్టర్ పంపినవారి సాధారణ హెడర్ ఇంటర్సెప్టర్ను జోడించదు. క్లయింట్ను జోడించేటప్పుడు దాన్ని నిలిపి ఉంచండి: Apache యొక్క అభ్యర్థన ప్రాసెసింగ్ నిర్వహించే SOAP అందించిన రవాణా హెడర్లను ఇది తొలగిస్తుంది. క్లయింట్ ఫ్యాక్టరీ యొక్క డిఫాల్ట్ల ద్వారా నిర్మించిన పంపినవారు ఈ ఇంటిగ్రేషన్ను నిలిపి ఉంచే మరో నిర్మాణ మార్గం.
అవసరమైన ప్రాక్సీ క్రెడెన్షియల్స్ మరియు సమయ పరిమితులను కస్టమ్ క్లయింట్పై దాని స్వంత మద్దతు ఇంటర్ఫేస్ల ద్వారా జోడించండి. పంపినవారి సెట్టర్ పద్ధతులు ఇప్పటికే అందించిన క్లయింట్ను కాన్ఫిగర్ చేయడానికి ప్రత్యామ్నాయం కావు.
టెంప్లేట్ యొక్క పనిభారం కోసం క్లయింట్ను నిలిపి ఉంచండి మరియు ఆపివేసేటప్పుడు స్వంత వనరులను మూసివేయండి. ఈ ఉదాహరణ HttpClient 5 పంపినవారిని ఉపయోగిస్తుంది; org.apache.http దిగుమతి చేసే Spring WS ఉదాహరణలు మరో క్లయింట్ తరాన్ని వివరిస్తాయి.