Spring WebServiceTemplate үчүн алдыңкы прокси
Прокси менен конфигурацияланган HttpClient 5 транспортун WebServiceTemplate'ке туташтырыңыз жана SOAP жөнөтүүчүгө керектүү заголовок интерсепторун сактаңыз.
WebServiceTemplate өзүнүн WebServiceMessageSender аркылуу жөнөтөт. SOAP багыты алдыңкы проксини талап кылганда ошол жөнөтүүчүнүн HTTP кардарын конфигурациялаңыз.
Apache HttpClient 5 жеткиликтүү Spring WS 4.1 үчүн:
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 кызматынын URI багыт бойдон калат; HTTP кардар ортомчуну кармайт, ал маршрут уруксат берилгенде HTTP прокси тизмесинен ачык талапкер болушу мүмкүн.
Ыңгайлаштырылган кардардын конструктору жөнөтүүчүнүн кадимки заголовок интерсепторун кошпойт. Кардарды курап жатканда аны сактаңыз: ал Apache'нин сурам иштетүүсү башкарган SOAP берген транспорттук заголовокторду алып салат. Кардар фабрикасынын демейки параметрлери аркылуу курулган жөнөтүүчү бул интеграцияны сактаган дагы бир куруу жолу.
Керектүү прокси эсептик маалыматтарын жана убакыт чектөөлөрүн ыңгайлаштырылган кардарга анын өзүнүн колдоого алынган интерфейстери аркылуу кошуңуз. Жөнөтүүчүнүн setter ыкмалары мурун берилген кардарды конфигурациялоонун ордун баспайт.
Кардарды шаблондун жүгү үчүн сактаңыз жана өчүрүү учурунда ээлик кылган ресурстарды жабыңыз. Бул мисал HttpClient 5 жөнөтүүчүсүн колдонот; org.apache.http импорттогон Spring WS мисалдары кардардын башка муунун сүрөттөйт.