Konfigurera en Spring-WS 4.1-proxy med HttpComponents 5
Anpassa Spring-WS 4.1:s HttpComponents5-klientfabrik och koppla den resulterande sendaren till 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);Tillämpa denna sendare på den befintliga template före anrop, och behåll tjänstens URI, marshaller och andra inställningar. Detta är Spring-WS 4.1.0 med Apache HttpClient 5. Om mallen riktar sig mot en tillåten offentlig SOAP-tjänst utan proxyautentisering kan en HTTP-adress från HTTP-proxylistan fylla anpassarens proxy.
withDefaults behåller interceptorn som tar bort de Content-Length och Transfer-Encoding som SOAP levererar innan Apache genererar HTTP-inramningen. Att lägga till proxyanpassaren där hindrar att integrationen ersätts av en bar klient. För en separat byggd Apache-klient behåll Spring-WS interceptor för borttagning av huvuden.
Matcha importer och sendargenerering. Äldre exempel med HttpComponentsMessageSender/org.apache.http använder Apache 4, inte denna SimpleHttpComponents5MessageSender och HttpHost-gränssnittet.
Behåll en manuellt skapad sendare under hela SOAP-klientens livstid och ordna dess normala förstöring efteråt. En Spring-hanterad bean kan använda behållarens livscykel. Andra mallar som behåller andra sendare behåller sin egen transportkonfiguration.