Một proxy chuyển tiếp cho WebServiceTemplate của Spring
Kết nối vận chuyển HttpClient 5 được cấu hình proxy với WebServiceTemplate và giữ lại bộ chặn tiêu đề mà bộ gửi SOAP yêu cầu.
WebServiceTemplate gửi qua WebServiceMessageSender của nó. Cấu hình máy khách HTTP của bộ gửi đó khi điểm đến SOAP yêu cầu một proxy chuyển tiếp.
Đối với Spring WS 4.1 có sẵn 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 là mẫu hiện có của ứng dụng. URI dịch vụ SOAP của nó vẫn là điểm đến; máy khách HTTP giữ trung gian, có thể là một ứng viên công khai từ danh sách proxy HTTP khi tuyến đó được phép.
Hàm tạo máy khách tùy chỉnh không thêm bộ chặn tiêu đề thông thường của bộ gửi. Giữ nó khi lắp ráp máy khách: nó loại bỏ các tiêu đề vận chuyển do SOAP cung cấp mà quá trình xử lý yêu cầu của Apache quản lý. Một bộ gửi được xây dựng qua các giá trị mặc định của nhà máy máy khách là một con đường xây dựng khác vẫn giữ tích hợp này.
Thêm thông tin xác thực proxy và thời gian chờ cần thiết vào máy khách tùy chỉnh thông qua các giao diện được hỗ trợ của chính nó. Các phương thức setter của bộ gửi không thay thế việc cấu hình một máy khách đã được cung cấp.
Giữ máy khách cho khối lượng công việc của mẫu và đóng các tài nguyên sở hữu khi tắt. Ví dụ này dùng bộ gửi HttpClient 5; các ví dụ Spring WS nhập org.apache.http mô tả một thế hệ máy khách khác.