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.

Povezani članci