Konfigurer en Spring-WS 4.1-proxy med HttpComponents 5
Tilpas Spring-WS 4.1's HttpComponents5-klientfabrik, og knyt den resulterende sender til 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);Anvend denne sender på den eksisterende template før kald, og bevar tjenestens URI, marshaller og andre indstillinger. Dette er Spring-WS 4.1.0 med Apache HttpClient 5. Hvis skabelonen retter sig mod en tilladt offentlig SOAP-tjeneste uden proxygodkendelse, kan en HTTP-adresse fra HTTP-proxylisten udfylde tilpasserens proxy.
withDefaults beholder den interceptor, der fjerner SOAP-leverede Content-Length og Transfer-Encoding, før Apache genererer HTTP-framing. Ved at tilføje proxy-tilpasseren der undgås det, at integrationen erstattes af en bar klient. Til en separat oprettet Apache-klient behold Spring-WS' interceptor til fjernelse af headere.
Afstem importer og sendergenerering. Ældre eksempler med HttpComponentsMessageSender/org.apache.http bruger Apache 4, ikke denne SimpleHttpComponents5MessageSender og HttpHost-grænseflade.
Behold en manuelt oprettet sender i SOAP-klientens levetid, og sørg for normal nedbrydning bagefter. En Spring-styret bean kan bruge containerens livscyklus. Andre skabeloner, der beholder andre sendere, bevarer deres egen transportkonfiguration.