WebServiceTemplate sender gennem sin WebServiceMessageSender. Konfigurer den afsenders HTTP-klient, når SOAP-destinationen kræver en videresendende proxy.

Til Spring WS 4.1 med Apache HttpClient 5 tilgængelig:

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 applikationens eksisterende skabelon. Dets SOAP service URI forbliver destinationen; HTTP-klienten holder mellemleddet, som kan være en offentlig kandidat fra HTTP-proxylisten, når den rute er tilladt.

Konstruktøren til en brugerdefineret klient tilføjer ikke afsenderens sædvanlige header-interceptor. Behold den, når klienten sammensættes: den fjerner SOAP-leverede transportheadere, som Apaches anmodningsbehandling styrer. En afsender bygget via klientfabrikkens standardindstillinger er en anden konstruktionsvej, der bevarer denne integration.

Tilføj de nødvendige proxy-legitimationsoplysninger og tidsgrænser på den brugerdefinerede klient gennem dens egne understøttede grænseflader. Afsenderens setter-metoder erstatter ikke konfiguration af en allerede leveret klient.

Behold klienten til skabelonens arbejdsbyrde, og luk ejede ressourcer ved nedlukning. Dette eksempel bruger HttpClient 5-afsenderen; Spring WS-eksempler, der importerer org.apache.http, beskriver en anden klientgeneration.

Relaterede artikler