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

Bruk denne senderen på den eksisterende template før kall, og behold tjenestens URI, marshaller og andre innstillinger. Dette er Spring-WS 4.1.0 med Apache HttpClient 5. Hvis malen retter seg mot en tillatt offentlig SOAP-tjeneste uten proxyautentisering, kan en HTTP-adresse fra HTTP-proxylisten fylle ut tilpasserens proxy.

withDefaults beholder interceptoren som fjerner Content-Length og Transfer-Encoding som SOAP leverer, før Apache genererer HTTP-rammeverket. Å legge til proxy-tilpasseren der hindrer at denne integrasjonen erstattes av en bar klient. For en separat bygget Apache-klient behold Spring-WS-interceptoren for fjerning av headere.

Tilpass importer og sendergenerering. Eldre eksempler med HttpComponentsMessageSender/org.apache.http bruker Apache 4, ikke denne SimpleHttpComponents5MessageSender og HttpHost-grensesnittet.

Behold en manuelt opprettet sender gjennom hele SOAP-klientens levetid, og sørg for normal nedbryting etterpå. En Spring-styrt bean kan bruke beholderens livssyklus. Andre maler som beholder andre sendere, beholder sin egen transportkonfigurasjon.

Relaterte artikler