Një proxy përpara për WebServiceTemplate të Spring
Lidhni një transport HttpClient 5 të konfiguruar me proxy me WebServiceTemplate dhe mbani ndërhyrësin e kërkuar të kokave të dërguesit SOAP.
WebServiceTemplate dërgon përmes WebServiceMessageSender-it të vet. Konfiguroni klientin HTTP të atij dërguesi kur destinacioni SOAP kërkon një proxy përpara.
Për Spring WS 4.1 me Apache HttpClient 5 në dispozicion:
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 është shablloni ekzistues i aplikacionit. URI-ja e shërbimit SOAP mbetet destinacioni; klienti HTTP mban ndërmjetësin, i cili mund të jetë një kandidat publik nga lista e proxy-ve HTTP kur ajo rrugë lejohet.
Konstruktori i klientit të personalizuar nuk shton ndërhyrësin e zakonshëm të kokave të dërguesit. Mbani atë gjatë montimit të klientit: heq kokët e transportit të ofruara nga SOAP që menaxhohen nga përpunimi i kërkesave i Apache. Një dërgues i ndërtuar përmes parazgjedhjeve të fabrikës së klientëve është një rrugë tjetër ndërtimi që ruan këtë integrim.
Shtoni kredencialet e proxy-t dhe afatet e nevojshme në klientin e personalizuar përmes ndërfaqeve të tij të mbështetura. Metodat setter të dërguesit nuk zëvendësojnë konfigurimin e një klienti tashmë të ofruar.
Mbani klientin për ngarkesën e shabllonit dhe mbyllni burimet e zotëruara në mbyllje. Ky shembull përdor dërguesin HttpClient 5; shembujt e Spring WS që importojnë org.apache.http përshkruajnë një brez tjetër klientësh.