Cấu hình proxy Spring-WS 4.1 với HttpComponents 5
Tùy chỉnh nhà máy máy khách HttpComponents5 của Spring-WS 4.1 và gắn bộ gửi thu được vào 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);Áp dụng bộ gửi này cho template hiện có trước các lời gọi, giữ nguyên URI dịch vụ, marshaller và các cài đặt khác. Đây là Spring-WS 4.1.0 với Apache HttpClient 5. Nếu mẫu nhắm tới một dịch vụ SOAP công khai được phép mà không có xác thực proxy, một địa chỉ HTTP từ danh sách proxy HTTP có thể điền proxy của bộ tùy chỉnh.
withDefaults giữ lại bộ chặn loại bỏ Content-Length và Transfer-Encoding do SOAP cung cấp trước khi Apache tạo khung HTTP. Thêm bộ tùy chỉnh proxy tại đó tránh việc thay thế tích hợp ấy bằng một máy khách trần. Với máy khách Apache được dựng riêng, hãy giữ bộ chặn loại bỏ tiêu đề của Spring-WS.
Khớp các import và việc tạo bộ gửi. Các ví dụ cũ dùng HttpComponentsMessageSender/org.apache.http áp dụng Apache 4, không phải SimpleHttpComponents5MessageSender và giao diện HttpHost này.
Giữ bộ gửi được tạo thủ công trong suốt vòng đời máy khách SOAP và sắp xếp việc hủy bình thường sau đó. Một bean do Spring quản lý có thể dùng vòng đời của vùng chứa. Các mẫu khác giữ bộ gửi khác vẫn giữ cấu hình vận chuyển riêng của chúng.