Přeposílající proxy pro WebServiceTemplate ve Spring
Připojte transport HttpClient 5 nakonfigurovaný přes proxy k WebServiceTemplate a zachovejte požadovaný interceptor hlaviček odesílatele SOAP.
WebServiceTemplate odesílá přes svůj WebServiceMessageSender. Nakonfigurujte HTTP klienta tohoto odesílatele, když cíl SOAP vyžaduje přeposílající proxy.
Pro Spring WS 4.1 s dostupným Apache HttpClient 5:
var http = org.apache.hc.client5.http.impl.classic.HttpClients.custom()
.setProxy(new org.apache.hc.core5.http.HttpHost(
"http", "proxy.example", 8080))
.addRequestInterceptorFirst(
new org.springframework.ws.transport.http
.HttpComponents5ClientFactory.RemoveSoapHeadersInterceptor())
.build();
var sender = new org.springframework.ws.transport.http
.HttpComponents5MessageSender(http);
webServiceTemplate.setMessageSender(sender);webServiceTemplate je stávající šablona aplikace. Jeho URI služby SOAP zůstává cílem; HTTP klient drží prostředníka, kterým může být veřejný kandidát ze seznamu HTTP proxy, pokud je tato trasa povolena.
Konstruktor vlastního klienta nepřidává obvyklý interceptor hlaviček odesílatele. Při sestavování klienta jej zachovejte: odstraňuje transportní hlavičky dodané SOAP, které spravuje zpracování požadavků Apache. Odesílatel sestavený přes výchozí nastavení továrny klientů je další způsob sestavení, který tuto integraci zachovává.
Přidejte požadované přihlašovací údaje proxy a časové limity na vlastním klientovi prostřednictvím jeho vlastních podporovaných rozhraní. Settery odesílatele nenahrazují konfiguraci již dodaného klienta.
Zachovejte klienta pro zátěž šablony a při ukončení zavřete vlastněné prostředky. Tento příklad používá odesílatele HttpClient 5; příklady Spring WS importující org.apache.http popisují jinou generaci klientů.