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 — гэта існуючы шаблон прыкладання. Яго URI службы SOAP застаецца прызначэннем; HTTP-кліент утрымлівае пасярэдніка, які можа быць публічным кандыдатам са спісу HTTP-проксі, калі гэты маршрут дазволены.

Канструктар уласнага кліента не дадае звычайны перахапнік загалоўкаў адпраўніка. Захавайце яго пры зборцы кліента: ён выдаляе транспартныя загалоўкі, пададзеныя SOAP, якімі кіруе апрацоўка запытаў Apache. Адпраўнік, пабудаваны праз прадвызначэнні фабрыкі кліентаў, — іншы шлях пабудовы, які захоўвае гэтую інтэграцыю.

Дадайце патрэбныя ўліковыя даныя проксі і тайм-аўты на ўласным кліенце праз яго ўласныя падтрыманыя інтэрфейсы. Метады-сетэры адпраўніка не замяняюць наладжванне ўжо пададзенага кліента.

Захавайце кліент для працы шаблона і закрыйце ўласныя рэсурсы пры завяршэнні. Гэты прыклад выкарыстоўвае адпраўнік HttpClient 5; прыклады Spring WS, якія імпартуюць org.apache.http, апісваюць іншае пакаленне кліентаў.

Падобныя артыкулы