פרוקסי קדמי עבור 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 מנהל. שולח שנבנה דרך ברירות המחדל של מפעל הלקוחות הוא מסלול בנייה אחר ששומר על האינטגרציה הזו.
הוסיפו את אישורי הפרוקסי וזמני הקצוב הנדרשים בלקוח המותאם דרך הממשקים הנתמכים שלו עצמו. שיטות ה-setter של השולח אינן מחליפות הגדרה של לקוח שכבר סופק.
שמרו על הלקוח עבור עומס העבודה של התבנית וסגרו משאבים בבעלותכם בעת הכיבוי. דוגמה זו משתמשת בשולח HttpClient 5; דוגמאות Spring WS שמייבאות את org.apache.http מתארות דור לקוחות אחר.