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 પ્રોક્સી યાદીમાંથી જાહેર ઉમેદવાર હોઈ શકે છે.
કસ્ટમ-ક્લાયન્ટ કન્સ્ટ્રક્ટર મોકલનારનું સામાન્ય હેડર ઇન્ટરસેપ્ટર ઉમેરતું નથી. ક્લાયન્ટ જોડતી વખતે તેને જાળવી રાખો: તે SOAP દ્વારા પૂરા પાડવામાં આવતા તે ટ્રાન્સપોર્ટ હેડર દૂર કરે છે જે Apacheની વિનંતી પ્રક્રિયા સંભાળે છે. ક્લાયન્ટ ફેક્ટરીના ડિફોલ્ટ દ્વારા બનાવેલ મોકલનાર આ એકીકરણ જાળવી રાખતો બીજો નિર્માણ માર્ગ છે.
જરૂરી પ્રોક્સી ઓળખપત્રો અને સમયમર્યાદા કસ્ટમ ક્લાયન્ટ પર તેના પોતાના સમર્થિત ઇન્ટરફેસ દ્વારા ઉમેરો. મોકલનારની સેટર પદ્ધતિઓ પહેલેથી પૂરા પાડવામાં આવેલ ક્લાયન્ટને રૂપરેખાંકિત કરવાનો વિકલ્પ નથી.
ટેમ્પલેટના કાર્યભાર માટે ક્લાયન્ટ જાળવી રાખો અને બંધ કરતી વખતે માલિકીના સ્રોત બંધ કરો. આ ઉદાહરણ HttpClient 5 મોકલનાર વાપરે છે; org.apache.http આયાત કરતા Spring WS ઉદાહરણો બીજી ક્લાયન્ટ પેઢીનું વર્ણન કરે છે.