Konfigurace proxy pro Spring-WS 4.1 s HttpComponents 5
Přizpůsobte klientskou továrnu HttpComponents5 v Spring-WS 4.1 a připojte výsledného odesílatele k 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);Tento odesílatel aplikujte na stávající template před voláním a zachovejte URI služby, marshaller i ostatní nastavení. Jde o Spring-WS 4.1.0 s Apache HttpClient 5. Pokud šablona cílí na povolenou veřejnou službu SOAP bez ověřování proxy, může HTTP adresa ze seznamu HTTP proxy doplnit proxy přizpůsobení.
withDefaults zachovává interceptor, který odstraňuje Content-Length a Transfer-Encoding dodané přes SOAP dříve, než Apache vytvoří rámování HTTP. Přidání přizpůsobení proxy na toto místo zabrání nahrazení této integrace holým klientem. U samostatně sestaveného klienta Apache zachovejte interceptor Spring-WS pro odstranění hlaviček.
Slaďte importy a vytváření odesílatele. Starší příklady s HttpComponentsMessageSender/org.apache.http používají Apache 4, nikoli tento SimpleHttpComponents5MessageSender a rozhraní HttpHost.
Ručně vytvořeného odesílatele uchovejte po celou dobu životnosti klienta SOAP a poté zajistěte jeho běžné zničení. Bean spravovaný Springem může využít životní cyklus kontejneru. Jiné šablony s jinými odesílateli si ponechávají vlastní konfiguraci přenosu.