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);

Tento odosielateľ použite na existujúci template pred volaniami a zachovajte URI služby, marshaller aj ostatné nastavenia. Ide o Spring-WS 4.1.0 s Apache HttpClient 5. Ak šablóna cieli na povolenú verejnú službu SOAP bez overovania proxy, adresa HTTP zo zoznamu HTTP proxy môže vyplniť proxy prispôsobenia.

withDefaults zachováva interceptor, ktorý odstraňuje hlavičky Content-Length a Transfer-Encoding dodané cez SOAP skôr, než Apache vytvorí rámcovanie HTTP. Pridanie prispôsobenia proxy na toto miesto zabráni nahradeniu tejto integrácie holým klientom. Pre samostatne zostaveného klienta Apache zachovajte interceptor Spring-WS na odstraňovanie hlavičiek.

Zlaďte importy a vytváranie odosielateľa. Staršie príklady s HttpComponentsMessageSender/org.apache.http používajú Apache 4, nie tento SimpleHttpComponents5MessageSender a rozhranie HttpHost.

Ručne vytvoreného odosielateľa uchovajte po celú životnosť klienta SOAP a potom zabezpečte jeho bežné zničenie. Bean spravovaný Springom môže využiť životný cyklus kontajnera. Iné šablóny s inými odosielateľmi si ponechávajú vlastnú konfiguráciu prenosu.

Súvisiace články