Налаштування проксі 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, а потім забезпечте його звичайне знищення. Бін, яким керує Spring, може використовувати життєвий цикл контейнера. Інші шаблони, що зберігають інших відправників, тримають власну конфігурацію транспорту.