Spring-WS 4.1 -välityspalvelimen määrittäminen HttpComponents 5:llä
Mukauta Spring-WS 4.1:n HttpComponents5-asiakastehdasta ja liitä syntyvä lähettäjä WebServiceTemplateen.
import org.apache.hc.core5.http.HttpHost;
import org.springframework.ws.transport.http.HttpComponents5ClientFactory;
import org.springframework.ws.transport.http.SimpleHttpComponents5MessageSender;
var factory = HttpComponents5ClientFactory.withDefaults();
factory.addClientBuilderCustomizer(builder ->
builder.setProxy(new HttpHost("http", "proxy.example", 8080)));
var sender = new SimpleHttpComponents5MessageSender(factory);
template.setMessageSender(sender);Käytä tätä lähettäjää olemassa olevaan template-objektiin ennen kutsuja ja säilytä palvelun URI, marshaller sekä muut asetukset. Tämä on Spring-WS 4.1.0 Apache HttpClient 5:n kanssa. Jos mallipohja kohdistuu sallittuun julkiseen SOAP-palveluun ilman välityspalvelimen tunnistautumista, HTTP-välityspalvelinluettelosta saatava HTTP-osoite voi täyttää mukauttajan välityspalvelimen.
withDefaults säilyttää kuuntelijan, joka poistaa SOAPin toimittamat Content-Length- ja Transfer-Encoding-otsikot ennen kuin Apache luo HTTP-kehyksen. Välityspalvelimen mukauttajan lisääminen siihen estää tämän integraation korvaamisen paljaalla asiakkaalla. Erikseen rakennetulle Apache-asiakkaalle säilytä Spring-WS:n otsikot poistava kuuntelija.
Sovita importit ja lähettäjän luonti yhteen. Vanhemmat esimerkit, joissa on HttpComponentsMessageSender/org.apache.http, käyttävät Apache 4:ää, eivät tätä SimpleHttpComponents5MessageSender-luokkaa ja HttpHost-rajapintaa.
Säilytä käsin luotu lähettäjä SOAP-asiakkaan koko elinkaaren ajan ja järjestä sen normaali tuhoaminen sen jälkeen. Springin hallitsema bean voi käyttää säiliön elinkaarta. Muut mallipohjat, jotka säilyttävät muita lähettäjiä, pitävät oman siirtomäärityksensä.