Конфигурисање проксија за Spring-WS 4.1 уз HttpComponents 5
Прилагодите клијентску фабрику HttpComponents5 у Spring-WS 4.1 и повежите добијени пошиљалац са WebServiceTemplate.
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 може да користи животни циклус контејнера. Други шаблони који задржавају друге пошиљаоце чувају сопствену транспортну конфигурацију.