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 опишуваат друга генерација на клиенти.

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