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);

Uporabite tega pošiljatelja na obstoječem template pred klici, pri čemer ohranite URI storitve, marshaller in druge nastavitve. To je Spring-WS 4.1.0 z Apache HttpClient 5. Če predloga cilja dovoljeno javno storitev SOAP brez preverjanja posrednika, lahko naslov HTTP s seznama posrednikov HTTP zapolni posrednika prilagoditve.

withDefaults ohrani presledovalnik, ki odstrani glave Content-Length in Transfer-Encoding, ki jih priskrbi SOAP, preden Apache ustvari okvirjanje HTTP. Dodajanje prilagoditve posrednika tam prepreči, da bi to integracijo nadomestil goli odjemalec. Za ločeno zgrajenega odjemalca Apache ohranite presledovalnik Spring-WS za odstranjevanje glav.

Uskladite uvoze in ustvarjanje pošiljatelja. Starejši primeri s HttpComponentsMessageSender/org.apache.http uporabljajo Apache 4, ne tega SimpleHttpComponents5MessageSender in vmesnika HttpHost.

Ohranite ročno ustvarjenega pošiljatelja ves čas življenja odjemalca SOAP in nato poskrbite za njegovo običajno uničenje. Bean, ki ga upravlja Spring, lahko uporabi življenjski cikel vsebnika. Druge predloge, ki ohranjajo druge pošiljatelje, obdržijo svojo konfiguracijo prenosa.

Sorodni članki