En videresendende proxy til Springs WebServiceTemplate
Tilslut en proxy-konfigureret HttpClient 5-transport til WebServiceTemplate, og behold den header-interceptor som SOAP-afsenderen kræver.
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.