Spring-WS 4.1 proxy beállítása HttpComponents 5-tel
Szabja testre a Spring-WS 4.1 HttpComponents5 kliensgyárát, és csatlakoztassa az így kapott küldőt a WebServiceTemplate-hez.
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);Alkalmazza ezt a küldőt a meglévő template-re a hívások előtt, megtartva a szolgáltatás URI-ját, a marshallert és az egyéb beállításokat. Ez a Spring-WS 4.1.0 Apache HttpClient 5-tel. Ha a sablon egy engedélyezett nyilvános SOAP-szolgáltatást céloz proxyhitelesítés nélkül, a HTTP-proxylistáról származó HTTP-cím kitöltheti a testreszabó proxyját.
withDefaults megtartja azt az interceptort, amely eltávolítja a SOAP által szállított Content-Length és Transfer-Encoding fejléceket, mielőtt az Apache létrehozná a HTTP-keretezést. A proxy testreszabójának ott történő hozzáadása elkerüli, hogy ezt az integrációt egy csupasz kliens váltsa fel. Külön felépített Apache-kliens esetén tartsa meg a Spring-WS fejléceltávolító interceptorát.
Egyeztesse az importokat és a küldő létrehozását. A HttpComponentsMessageSender/org.apache.http elemeket használó régebbi példák Apache 4-et használnak, nem ezt a SimpleHttpComponents5MessageSender osztályt és a HttpHost felületet.
Tartsa meg a kézzel létrehozott küldőt a SOAP-kliens teljes élettartama alatt, majd gondoskodjon a normál megsemmisítéséről. Egy Spring által kezelt bean használhatja a konténer életciklusát. A más küldőket megtartó sablonok saját átviteli konfigurációjukat őrzik meg.