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);

Piemērojiet šo sūtītāju esošajam template pirms izsaukumiem, saglabājot servisa URI, marshaller un citus iestatījumus. Šis ir Spring-WS 4.1.0 ar Apache HttpClient 5. Ja veidne mērķē uz atļautu publisku SOAP servisu bez starpniekservera autentifikācijas, HTTP adrese no HTTP starpniekserveru saraksta var aizpildīt pielāgotāja starpniekserveri.

withDefaults saglabā starpnieku, kas noņem SOAP nodrošinātos Content-Length un Transfer-Encoding virsrakstus pirms Apache ģenerē HTTP ietvaru. Pielāgotāja pievienošana tur neļauj šo integrāciju aizstāt ar kailu klientu. Atsevišķi veidotam Apache klientam saglabājiet Spring-WS virsrakstu noņemšanas starpnieku.

Saskaņojiet importus un sūtītāja ģenerēšanu. Vecāki piemēri ar HttpComponentsMessageSender/org.apache.http izmanto Apache 4, nevis šo SimpleHttpComponents5MessageSender un HttpHost saskarni.

Saglabājiet manuāli izveidotu sūtītāju visā SOAP klienta darbības laikā un pēc tam nodrošiniet tā parasto iznīcināšanu. Spring pārvaldīts bean var izmantot konteinera dzīves ciklu. Citas veidnes, kas saglabā citus sūtītājus, patur savu transporta konfigurāciju.

Saistītie raksti