WebServiceTemplate odosiela cez svoj WebServiceMessageSender. Nakonfigurujte HTTP klienta tohto odosielateľa, keď cieľ SOAP vyžaduje preposielajúci proxy.

Pre 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 existujúca šablóna aplikácie. Jeho URI služby SOAP zostáva cieľom; HTTP klient drží sprostredkovateľa, ktorým môže byť verejný kandidát zo zoznamu HTTP proxy, ak je táto trasa povolená.

Konštruktor vlastného klienta nepridáva obvyklý interceptor hlavičiek odosielateľa. Pri zostavovaní klienta ho zachovajte: odstraňuje transportné hlavičky poskytnuté SOAP, ktoré spravuje spracovanie požiadaviek Apache. Odosielateľ zostavený cez predvolené nastavenia továrne klientov je ďalší spôsob zostavenia, ktorý zachováva túto integráciu.

Pridajte požadované prihlasovacie údaje proxy a časové limity na vlastnom klientovi prostredníctvom jeho vlastných podporovaných rozhraní. Settery odosielateľa nenahrádzajú konfiguráciu už dodaného klienta.

Zachovajte klienta pre záťaž šablóny a pri ukončení zatvorte vlastnené prostriedky. Tento príklad používa odosielateľa HttpClient 5; príklady Spring WS importujúce org.apache.http opisujú inú generáciu klientov.

Súvisiace články