พร็อกซี่ส่งต่อสำหรับ 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 จัดการ ผู้ส่งที่สร้างผ่านค่าเริ่มต้นของโรงงานไคลเอนต์เป็นอีกเส้นทางการสร้างที่รักษาการผสานรวมนี้
เพิ่มข้อมูลรับรองพร็อกซี่และเวลาหมดเวลาที่จำเป็นบนไคลเอนต์แบบกำหนดเองผ่านอินเทอร์เฟซที่รองรับของมันเอง เมธอดเซตเตอร์ของผู้ส่งไม่ใช่สิ่งทดแทนการกำหนดค่าไคลเอนต์ที่จัดหาให้แล้ว
รักษาไคลเอนต์ไว้สำหรับภาระงานของเทมเพลตและปิดทรัพยากรที่เป็นเจ้าของเมื่อปิดระบบ ตัวอย่างนี้ใช้ผู้ส่ง HttpClient 5 ตัวอย่าง Spring WS ที่นำเข้า org.apache.http อธิบายไคลเอนต์อีกรุ่นหนึ่ง