Ուղղորդող պրոքսի Spring-ի WebServiceTemplate-ի համար
Միացրեք պրոքսիով կազմաձևված 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 ծառայության URI-ն մնում է նպատակակետը. HTTP հաճախորդը պահում է միջնորդին, որը կարող է հանրային թեկնածու լինել HTTP պրոքսիների ցանկից, երբ այդ ուղին թույլատրված է։
Հատուկ հաճախորդի կոնստրուկտորը չի ավելացնում ուղարկողի սովորական վերնագրային ընդհատիչը։ Պահպանեք այն հաճախորդը հավաքելիս. այն հեռացնում է SOAP-ի տրամադրած տրանսպորտային վերնագրերը, որոնք կառավարում է Apache-ի հարցումների մշակումը։ Հաճախորդի գործարանի լռելյայն կարգավորումներով կառուցված ուղարկողը մեկ այլ կառուցման ուղի է, որը պահպանում է այս ինտեգրումը։
Ավելացրեք անհրաժեշտ պրոքսի հավատարմագրերը և ժամկետները հատուկ հաճախորդի վրա նրա սեփական աջակցվող ինտերֆեյսների միջոցով։ Ուղարկողի setter մեթոդները չեն փոխարինում արդեն տրամադրված հաճախորդի կազմաձևմանը։
Պահպանեք հաճախորդը ձևանմուշի աշխատանքի համար և անջատելիս փակեք պատկանող ռեսուրսները։ Այս օրինակը օգտագործում է HttpClient 5 ուղարկողը. org.apache.http ներմուծող Spring WS օրինակները նկարագրում են հաճախորդի մեկ այլ սերունդ։