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 може да го користи животниот циклус на контејнерот. Другите шаблони што задржуваат други праќачи ја чуваат сопствената транспортна конфигурација.

Поврзани статии