Prednji proxy za Spring WebServiceTemplate
Povežite prijenos HttpClient 5 konfiguriran kroz proxy s WebServiceTemplate i zadržite potrebni presretač zaglavlja SOAP pošiljaoca.
WebServiceTemplate šalje preko svog WebServiceMessageSender. Konfigurirajte HTTP klijent tog pošiljaoca kada SOAP odredište zahtijeva prednji proxy.
Za Spring WS 4.1 uz dostupan Apache HttpClient 5:
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 je postojeći predložak aplikacije. Njegov SOAP service URI ostaje odredište; HTTP klijent drži posrednika, koji može biti javni kandidat s liste HTTP proxyja kada je ta ruta dopuštena.
Konstruktor prilagođenog klijenta ne dodaje uobičajeni presretač zaglavlja pošiljaoca. Zadržite ga pri sastavljanju klijenta: uklanja transportna zaglavlja koja dostavlja SOAP, a kojima upravlja Apacheova obrada zahtjeva. Pošiljalac izgrađen preko zadanih postavki fabrike klijenata drugi je put izgradnje koji zadržava ovu integraciju.
Dodajte potrebne proxy akreditive i vremenska ograničenja na prilagođeni klijent preko njegovih vlastitih podržanih interfejsa. Setter metode pošiljaoca nisu zamjena za konfigurisanje već dostavljenog klijenta.
Zadržite klijent za radno opterećenje predloška i zatvorite posjedovane resurse pri gašenju. Ovaj primjer koristi HttpClient 5 pošiljaoca; primjeri Spring WS koji uvoze org.apache.http opisuju drugu generaciju klijenta.