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 നൽകുന്ന ഗതാഗത ഹെഡറുകൾ അത് നീക്കം ചെയ്യുന്നു. ക്ലയന്റ് ഫാക്ടറിയുടെ സ്വതേയുള്ള ക്രമീകരണങ്ങൾ വഴി നിർമ്മിച്ച അയയ്ക്കുന്നയാളും ഈ സംയോജനം നിലനിർത്തുന്ന മറ്റൊരു നിർമ്മാണ വഴിയാണ്.
ആവശ്യമായ പ്രോക്സി ക്രെഡൻഷ്യലുകളും സമയപരിധികളും ഇഷ്ടാനുസൃത ക്ലയന്റിൽ അതിന്റെ സ്വന്തം പിന്തുണയുള്ള ഇന്റർഫേസുകൾ വഴി ചേർക്കുക. അയയ്ക്കുന്നയാളുടെ സെറ്റർ രീതികൾ നേരത്തെ നൽകിയ ക്ലയന്റ് ക്രമീകരിക്കുന്നതിന് പകരമല്ല.
ടെംപ്ലേറ്റിന്റെ ജോലിഭാരത്തിനായി ക്ലയന്റ് നിലനിർത്തി ഷട്ട്ഡൗൺ സമയത്ത് സ്വന്തം വിഭവങ്ങൾ അടയ്ക്കുക. ഈ ഉദാഹരണം HttpClient 5 അയയ്ക്കുന്നയാളെ ഉപയോഗിക്കുന്നു; org.apache.http ഇമ്പോർട്ട് ചെയ്യുന്ന Spring WS ഉദാഹരണങ്ങൾ മറ്റൊരു ക്ലയന്റ് തലമുറയെ വിവരിക്കുന്നു.