הגדרת פרוקסי של Spring-WS 4.1 עם HttpComponents 5
התאימו אישית את מפעל הלקוח HttpComponents5 של Spring-WS 4.1 וחברו את השולח המתקבל אל WebServiceTemplate.
import org.apache.hc.core5.http.HttpHost;
import org.springframework.ws.transport.http.HttpComponents5ClientFactory;
import org.springframework.ws.transport.http.SimpleHttpComponents5MessageSender;
var factory = HttpComponents5ClientFactory.withDefaults();
factory.addClientBuilderCustomizer(builder ->
builder.setProxy(new HttpHost("http", "proxy.example", 8080)));
var sender = new SimpleHttpComponents5MessageSender(factory);
template.setMessageSender(sender);החילו את השולח הזה על ה-template הקיים לפני הקריאות, תוך שמירה על URI של השירות, ה-marshaller והגדרות אחרות. זהו Spring-WS 4.1.0 עם Apache HttpClient 5. אם התבנית מכוונת לשירות SOAP ציבורי מורשה ללא אימות פרוקסי, כתובת HTTP מרשימת פרוקסי ה-HTTP יכולה למלא את הפרוקסי של המתאים.
withDefaults משמר את המיירט שמסיר את כותרות Content-Length ו-Transfer-Encoding שמספק SOAP לפני ש-Apache יוצר את מסגור ה-HTTP. הוספת מתאים הפרוקסי שם מונעת החלפה של אותו שילוב בלקוח חשוף. עבור לקוח Apache שנבנה בנפרד, שמרו על מיירט הסרת הכותרות של Spring-WS.
התאימו בין הייבוא ליצירת השולח. דוגמאות ישנות עם HttpComponentsMessageSender/org.apache.http משתמשות ב-Apache 4, ולא ב-SimpleHttpComponents5MessageSender ובממשק HttpHost האלה.
שמרו על שולח שנוצר ידנית לאורך כל חיי לקוח ה-SOAP וסדרו את השמדתו הרגילה לאחר מכן. bean שמנוהל על ידי Spring יכול להשתמש במחזור החיים של המכולה. תבניות אחרות ששומרות על שולחים אחרים שומרות על תצורת התעבורה שלהן.