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

Примените овај пошиљалац на постојећи template пре позива, чувајући URI услуге, marshaller и остала подешавања. Ово је Spring-WS 4.1.0 са Apache HttpClient 5. Ако шаблон циља дозвољену јавну SOAP услугу без аутентификације проксија, HTTP адреса са листе HTTP проксија може попунити прокси прилагођивача.

withDefaults задржава пресретач који уклања Content-Length и Transfer-Encoding које доставља SOAP пре него што Apache генерише HTTP оквире. Додавање прилагођивача проксија ту спречава замену те интеграције голим клијентом. За засебно изграђен Apache клијент задржите Spring-WS пресретач за уклањање заглавља.

Ускладите увозе и генерисање пошиљаоца. Старији примери са HttpComponentsMessageSender/org.apache.http користе Apache 4, а не овај SimpleHttpComponents5MessageSender и интерфејс HttpHost.

Задржите ручно креиран пошиљалац током целог века SOAP клијента и потом обезбедите његово нормално уништење. Bean којим управља Spring може да користи животни циклус контејнера. Други шаблони који задржавају друге пошиљаоце чувају сопствену транспортну конфигурацију.

Повезани чланци