WebServiceTemplate sender gjennom sin WebServiceMessageSender. Konfigurer den senderens HTTP-klient når SOAP-målet krever en videresendende proxy.

For Spring WS 4.1 med Apache HttpClient 5 tilgjengelig:

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 er applikasjonens eksisterende mal. SOAP-tjenestens URI forblir målet; HTTP-klienten holder mellomleddet, som kan være en offentlig kandidat fra HTTP-proxylisten når den ruten er tillatt.

Konstruktøren for en tilpasset klient legger ikke til senderens vanlige header-interceptor. Behold den når klienten settes sammen: den fjerner SOAP-leverte transportheadere som Apaches forespørselsbehandling styrer. En sender bygget via klientfabrikkens standardinnstillinger er en annen konstruksjonsvei som beholder denne integrasjonen.

Legg til nødvendige proxy-legitimasjoner og tidsavbrudd på den tilpassede klienten gjennom dens egne støttede grensesnitt. Senderens setter-metoder erstatter ikke konfigurering av en klient som allerede er levert.

Behold klienten for malens arbeidsmengde, og lukk eide ressurser ved avslutning. Dette eksemplet bruker HttpClient 5-senderen; Spring WS-eksempler som importerer org.apache.http beskriver en annen klientgenerasjon.

Relaterte artikler