Konfigurisanje proxyja za Spring-WS 4.1 uz HttpComponents 5
Prilagodite klijentsku fabriku HttpComponents5 u Spring-WS 4.1 i povežite dobijeni pošiljalac 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šiljalac na postojeći template prije poziva, čuvajući URI servisa, marshaller i druge postavke. Ovo je Spring-WS 4.1.0 s Apache HttpClient 5. Ako šablon cilja dozvoljenu javnu SOAP uslugu bez autentifikacije proxyja, HTTP adresa s liste HTTP proxyja može popuniti proxy prilagođivača.
withDefaults zadržava interceptor koji uklanja Content-Length i Transfer-Encoding koje dostavlja SOAP prije nego Apache generiše HTTP okvire. Dodavanje proxy prilagođivača tamo sprječava zamjenu te integracije golim klijentom. Za zasebno izgrađen Apache klijent zadržite Spring-WS interceptor za uklanjanje zaglavlja.
Uskladite importe i generisanje pošiljaoca. Stariji primjeri s HttpComponentsMessageSender/org.apache.http koriste Apache 4, a ne ovaj SimpleHttpComponents5MessageSender i HttpHost interfejs.
Zadržite ručno kreiran pošiljalac tokom cijelog vijeka SOAP klijenta i osigurajte normalno uništenje nakon toga. Beanom kojim upravlja Spring može koristiti životni ciklus kontejnera. Drugi šabloni koji zadržavaju druge pošiljaoce čuvaju vlastitu transportnu konfiguraciju.