Persiunčiantis tarpinis serveris Spring WebServiceTemplate
Prijunkite per tarpinį serverį sukonfigūruotą HttpClient 5 transportą prie WebServiceTemplate ir išsaugokite SOAP siuntėjo reikalaujamą antraščių perėmėją.
WebServiceTemplate siunčia per savo WebServiceMessageSender. Sukonfigūruokite to siuntėjo HTTP klientą, kai SOAP paskirties taškui reikia persiunčiančio tarpinio serverio.
Spring WS 4.1 su prieinamu Apache HttpClient 5:
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 yra esamas programos šablonas. Jo SOAP paslaugos URI išlieka paskirties tašku; HTTP klientas laiko tarpininką, kuris gali būti viešas kandidatas iš HTTP tarpinių serverių sąrašo, kai tas maršrutas leidžiamas.
Pasirinktinio kliento konstruktorius neprideda įprasto siuntėjo antraščių perėmėjo. Išsaugokite jį surenkant klientą: jis pašalina SOAP pateiktas transporto antraštes, kurias tvarko Apache užklausų apdorojimas. Siuntėjas, sukurtas per kliento fabriko numatytuosius nustatymus, yra kitas kūrimo kelias, išsaugantis šią integraciją.
Pridėkite reikiamus tarpinio serverio prisijungimo duomenis ir skirtuosius laikus pasirinktiniam klientui per jo paties palaikomas sąsajas. Siuntėjo setter metodai nepakeičia jau pateikto kliento konfigūravimo.
Išsaugokite klientą šablono darbo krūviui ir išjungdami uždarykite nuosavus išteklius. Šiame pavyzdyje naudojamas HttpClient 5 siuntėjas; Spring WS pavyzdžiai, importuojantys org.apache.http, aprašo kitą klientų kartą.