Ein vidaresendande proxy for Springs WebServiceTemplate
Kopla ein proxykonfigurert HttpClient 5-transport til WebServiceTemplate og hald på header-interceptoren som SOAP-sendaren krev.
WebServiceTemplate sender gjennom sin WebServiceMessageSender. Konfigurer HTTP-klienten til den sendaren når SOAP-målet krev ein vidaresendande proxy.
For Spring WS 4.1 med Apache HttpClient 5 tilgjengeleg:
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 den eksisterande malen til applikasjonen. SOAP-tenesta sin URI blir verande målet; HTTP-klienten held mellomleddet, som kan vere ein offentleg kandidat frå HTTP-proxylista når den ruta er tillaten.
Konstruktøren for ein tilpassa klient legg ikkje til den vanlege header-interceptoren til sendaren. Hald på han når klienten blir sett saman: han fjernar SOAP-leverte transportheadarar som Apaches førespurnadsbehandling styrer. Ein sendar bygd via standardinnstillingane til klientfabrikken er ein annan konstruksjonsveg som held på denne integrasjonen.
Legg til nødvendig proxy-legitimasjon og tidsavbrot på den tilpassa klienten gjennom hans eigne støtta grensesnitt. Setter-metodane til sendaren erstattar ikkje konfigurering av ein klient som alt er levert.
Hald på klienten for arbeidsmengda til malen, og lukk eigde ressursar ved avslutning. Dette dømet brukar HttpClient 5-sendaren; Spring WS-døme som importerer org.apache.http skildrar ein annan klientgenerasjon.