Spring WebServiceTemplate için bir yönlendirici proxy
Proxy ile yapılandırılmış HttpClient 5 taşımasını WebServiceTemplate'e bağlayın ve SOAP göndericisinin gerektirdiği başlık ara katmanını koruyun.
WebServiceTemplate kendi WebServiceMessageSender'i üzerinden gönderir. SOAP hedefi bir yönlendirici proxy gerektirdiğinde o göndericinin HTTP istemcisini yapılandırın.
Apache HttpClient 5 kullanılabilir olduğunda Spring WS 4.1 için:
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 uygulamanın mevcut şablonudur. SOAP hizmet URI'si hedef olarak kalır; HTTP istemcisi aracıyı tutar ve bu rota izinliyse HTTP proxy listesinden genel bir aday olabilir.
Özel istemci oluşturucusu, göndericinin olağan başlık ara katmanını eklemez. İstemciyi kurarken bunu koruyun: Apache'nin istek işlemesinin yönettiği SOAP tarafından sağlanan taşıma başlıklarını kaldırır. İstemci fabrikasının varsayılanları üzerinden oluşturulan gönderici, bu bütünleşmeyi koruyan başka bir kurma yoludur.
Gerekli proxy kimlik bilgilerini ve zaman aşımlarını özel istemciye kendi desteklenen arayüzleri üzerinden ekleyin. Göndericinin setter yöntemleri, önceden sağlanmış bir istemciyi yapılandırmanın yerini tutmaz.
İstemciyi şablonun iş yükü için koruyun ve kapatırken sahip olunan kaynakları kapatın. Bu örnek HttpClient 5 göndericisini kullanır; org.apache.http içe aktaran Spring WS örnekleri başka bir istemci kuşağını anlatır.