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

Pritaikykite šį siuntėją esamam template prieš kvietimus, išsaugodami paslaugos URI, marshaller ir kitus nustatymus. Tai Spring-WS 4.1.0 su Apache HttpClient 5. Jei šablonas nukreiptas į leidžiamą viešą SOAP paslaugą be tarpinio serverio autentifikavimo, HTTP adresas iš HTTP tarpinių serverių sąrašo gali užpildyti tinkintojo tarpinį serverį.

withDefaults išsaugo interceptorę, kuri pašalina SOAP pateiktas Content-Length ir Transfer-Encoding antraštes prieš Apache sugeneruojant HTTP kadravimą. Pridėjus tarpinio serverio tinkintoją ten, ši integracija nepakeičiama pliku klientu. Atskirai sukonstruotam Apache klientui išsaugokite Spring-WS antraščių šalinimo interceptorę.

Suderinkite importus ir siuntėjo generavimą. Senesni pavyzdžiai su HttpComponentsMessageSender/org.apache.http naudoja Apache 4, o ne šį SimpleHttpComponents5MessageSender ir HttpHost sąsają.

Išsaugokite rankiniu būdu sukurtą siuntėją visą SOAP kliento gyvavimo laiką, o vėliau užtikrinkite įprastą jo sunaikinimą. Spring valdomas bean gali naudoti konteinerio gyvavimo ciklą. Kiti šablonai, išsaugantys kitus siuntėjus, palieka savo transporto konfigūraciją.

Susiję straipsniai