Edelleenohjaava välityspalvelin Springin WebServiceTemplateille
Liitä välityspalvelimen kautta määritetty HttpClient 5 -kuljetus WebServiceTemplateen ja säilytä SOAP-lähettäjän vaatima otsikkosieppaaja.
WebServiceTemplate lähettää WebServiceMessageSenderinsä kautta. Määritä kyseisen lähettäjän HTTP-asiakas, kun SOAP-kohde vaatii edelleenohjaavan välityspalvelimen.
Spring WS 4.1:lle, kun Apache HttpClient 5 on käytettävissä:
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 on sovelluksen olemassa oleva mallipohja. Sen SOAP-palvelun URI pysyy kohteena; HTTP-asiakas pitää välittäjän, joka voi olla julkinen ehdokas HTTP-välityspalvelinluettelosta, kun reitti on sallittu.
Mukautetun asiakkaan konstruktori ei lisää lähettäjän tavanomaista otsikkosieppaajaa. Säilytä se asiakasta koottaessa: se poistaa SOAPin tarjoamat kuljetusotsikot, joita Apachen pyyntökäsittely hallitsee. Asiakastehtaan oletusasetuksilla rakennettu lähettäjä on toinen rakennustapa, joka säilyttää tämän integraation.
Lisää tarvittavat välityspalvelimen tunnistetiedot ja aikakatkaisut mukautettuun asiakkaaseen sen omien tuettujen rajapintojen kautta. Lähettäjän setter-menetelmät eivät korvaa jo toimitetun asiakkaan määrittämistä.
Säilytä asiakas mallipohjan työkuormaa varten ja sulje omistetut resurssit sammutettaessa. Tämä esimerkki käyttää HttpClient 5 -lähettäjää; Spring WS -esimerkit, jotka tuovat org.apache.httpin, kuvaavat toista asiakassukupolvea.