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ä.

Aiheeseen liittyvät artikkelit