Prednji proxy za Spring WebServiceTemplate
Povežite prijenos HttpClient 5 konfiguriran kroz proxy s WebServiceTemplate i zadržite potrebni presretač zaglavlja SOAP pošiljatelja.
WebServiceTemplate šalje preko svog WebServiceMessageSender. Konfigurirajte HTTP klijent tog pošiljatelja 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 popisa HTTP proxyja kada je ta ruta dopuštena.
Konstruktor prilagođenog klijenta ne dodaje uobičajeni presretač zaglavlja pošiljatelja. Zadržite ga pri sastavljanju klijenta: uklanja transportna zaglavlja koja pruža SOAP, a kojima upravlja Apacheova obrada zahtjeva. Pošiljatelj izgrađen preko zadanih postavki tvornice klijenata drugi je put izgradnje koji zadržava ovu integraciju.
Dodajte potrebne proxy vjerodajnice i vremenska ograničenja na prilagođeni klijent preko njegovih vlastitih podržanih sučelja. Setter metode pošiljatelja nisu zamjena za konfiguriranje 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šiljatelja; primjeri Spring WS koji uvoze org.apache.http opisuju drugu generaciju klijenta.