Претходен прокси за WebServiceTemplate на Spring
Поврзете транспорт HttpClient 5 конфигуриран преку прокси со WebServiceTemplate и задржете го потребниот пресретнувач на заглавија на SOAP испраќачот.
WebServiceTemplate испраќа преку својот WebServiceMessageSender. Конфигурирајте го HTTP клиентот на тој испраќач кога SOAP одредиштето бара претходен прокси.
За Spring WS 4.1 со достапен Apache HttpClient 5:
var http = org.apache.hc.client5.http.impl.classic.HttpClients.custom()
.setProxy(new org.apache.hc.core5.http.HttpHost(
"http", "proxy.example", 8080))
.addRequestInterceptorFirst(
new org.springframework.ws.transport.http
.HttpComponents5ClientFactory.RemoveSoapHeadersInterceptor())
.build();
var sender = new org.springframework.ws.transport.http
.HttpComponents5MessageSender(http);
webServiceTemplate.setMessageSender(sender);webServiceTemplate е постоечкиот шаблон на апликацијата. Неговиот SOAP service URI останува одредиште; HTTP клиентот го држи посредникот, кој може да биде јавен кандидат од списокот на HTTP проксија кога таа рута е дозволена.
Конструкторот на прилагоден клиент не го додава вообичаениот пресретнувач на заглавија на испраќачот. Задржете го при составување на клиентот: ги отстранува транспортните заглавија обезбедени од SOAP, со кои управува обработката на барања на Apache. Испраќач изграден преку стандардните поставки на фабриката за клиенти е друг пат за изградба што ја задржува оваа интеграција.
Додајте ги потребните акредитиви за прокси и временските ограничувања на прилагодениот клиент преку неговите сопствени поддржани интерфејси. Setter методите на испраќачот не го заменуваат конфигурирањето на веќе обезбеден клиент.
Задржете го клиентот за работното оптоварување на шаблонот и затворете ги сопствените ресурси при исклучување. Овој пример го користи испраќачот HttpClient 5; примерите за Spring WS што импортираат org.apache.http опишуваат друга генерација на клиенти.