Прамы проксі для 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 — гэта існуючы шаблон прыкладання. Яго URI службы SOAP застаецца прызначэннем; HTTP-кліент утрымлівае пасярэдніка, які можа быць публічным кандыдатам са спісу HTTP-проксі, калі гэты маршрут дазволены.
Канструктар уласнага кліента не дадае звычайны перахапнік загалоўкаў адпраўніка. Захавайце яго пры зборцы кліента: ён выдаляе транспартныя загалоўкі, пададзеныя SOAP, якімі кіруе апрацоўка запытаў Apache. Адпраўнік, пабудаваны праз прадвызначэнні фабрыкі кліентаў, — іншы шлях пабудовы, які захоўвае гэтую інтэграцыю.
Дадайце патрэбныя ўліковыя даныя проксі і тайм-аўты на ўласным кліенце праз яго ўласныя падтрыманыя інтэрфейсы. Метады-сетэры адпраўніка не замяняюць наладжванне ўжо пададзенага кліента.
Захавайце кліент для працы шаблона і закрыйце ўласныя рэсурсы пры завяршэнні. Гэты прыклад выкарыстоўвае адпраўнік HttpClient 5; прыклады Spring WS, якія імпартуюць org.apache.http, апісваюць іншае пакаленне кліентаў.