Spring-WS 4.1 proxy'sini HttpComponents 5 ile yapılandırma
Spring-WS 4.1'in HttpComponents5 istemci fabrikasını özelleştirin ve elde edilen göndericiyi WebServiceTemplate'e bağlayın.
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);Bu göndericiyi çağrılardan önce mevcut template üzerine uygulayın; hizmetin URI'sini, marshaller'ı ve diğer ayarları koruyun. Bu, Apache HttpClient 5 ile Spring-WS 4.1.0'dır. Şablon, proxy kimlik doğrulaması olmadan izin verilen bir genel SOAP hizmetini hedefliyorsa, HTTP proxy listesindeki bir HTTP adresi özelleştiricinin proxy'sini doldurabilir.
withDefaults, Apache HTTP çerçevelemesini üretmeden önce SOAP tarafından sağlanan Content-Length ve Transfer-Encoding başlıklarını kaldıran kesiciyi korur. Proxy özelleştiricisini oraya eklemek, bu bütünleşmenin çıplak bir istemciyle değiştirilmesini önler. Ayrı olarak oluşturulan bir Apache istemcisi için Spring-WS'nin başlık kaldırma kesicisini koruyun.
İçe aktarımları ve gönderici üretimini eşleştirin. HttpComponentsMessageSender/org.apache.http kullanan eski örnekler Apache 4 kullanır, bu SimpleHttpComponents5MessageSender ve HttpHost arabirimi değil.
Elle oluşturulan göndericiyi SOAP istemcisinin tüm ömrü boyunca koruyun ve ardından normal şekilde yok edilmesini sağlayın. Spring tarafından yönetilen bir bean, kapsayıcının yaşam döngüsünü kullanabilir. Başka göndericileri koruyan diğer şablonlar kendi taşıma yapılandırmalarını korur.