กำหนดค่าพร็อกซี 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
ทำให้ import และการสร้างตัวส่งสอดคล้องกัน ตัวอย่างเก่าที่ใช้ HttpComponentsMessageSender/org.apache.http ใช้ Apache 4 ไม่ใช่ SimpleHttpComponents5MessageSender และอินเทอร์เฟซ HttpHost นี้
เก็บตัวส่งที่สร้างด้วยมือไว้ตลอดอายุของไคลเอนต์ SOAP และจัดการทำลายตามปกติหลังจากนั้น บีนที่ Spring จัดการสามารถใช้วงจรชีวิตของคอนเทนเนอร์ได้ เทมเพลตอื่นที่เก็บตัวส่งอื่นจะคงการกำหนดค่าการขนส่งของตนเอง