Konfiguriranje proxyja za Spring-WS 4.1 uz HttpComponents 5
Prilagodite klijentsku tvornicu HttpComponents5 u Spring-WS 4.1 i povežite dobiveni pošiljatelj s WebServiceTemplate.
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);Primijenite ovaj pošiljatelj na postojeći template prije poziva, čuvajući URI usluge, marshaller i ostale postavke. Ovo je Spring-WS 4.1.0 s Apache HttpClient 5. Ako predložak cilja dopuštenu javnu SOAP uslugu bez autentikacije proxyja, HTTP adresa s popisa HTTP proxyja može popuniti proxy prilagođivača.
withDefaults zadržava presretač koji uklanja Content-Length i Transfer-Encoding koje dostavlja SOAP prije nego Apache generira HTTP uokvirenje. Dodavanje proxy prilagođivača ondje sprječava zamjenu te integracije golim klijentom. Za zasebno izgrađen Apache klijent zadržite Spring-WS presretač za uklanjanje zaglavlja.
Uskladite uvoze i stvaranje pošiljatelja. Stariji primjeri s HttpComponentsMessageSender/org.apache.http koriste Apache 4, a ne ovaj SimpleHttpComponents5MessageSender i sučelje HttpHost.
Zadržite ručno stvoren pošiljatelj tijekom cijelog vijeka trajanja SOAP klijenta i osigurajte njegovo normalno uništenje nakon toga. Springom upravljani bean može koristiti životni ciklus kontejnera. Drugi predlošci koji zadržavaju druge pošiljatelje čuvaju vlastitu transportnu konfiguraciju.