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

Zastosuj tego nadawcę do istniejącego template przed wywołaniami, zachowując URI usługi, marshaller i inne ustawienia. To Spring-WS 4.1.0 z Apache HttpClient 5. Jeśli szablon kieruje się do dozwolonej publicznej usługi SOAP bez uwierzytelniania proxy, adres HTTP z listy proxy HTTP może wypełnić proxy dostosowania.

withDefaults zachowuje interceptor usuwający nagłówki Content-Length i Transfer-Encoding dostarczane przez SOAP, zanim Apache utworzy ramkowanie HTTP. Dodanie tam dostosowania proxy zapobiega zastąpieniu tej integracji gołym klientem. Dla osobno zbudowanego klienta Apache zachowaj interceptor Spring-WS usuwający nagłówki.

Dopasuj importy i tworzenie nadawcy. Starsze przykłady z HttpComponentsMessageSender/org.apache.http używają Apache 4, a nie tej SimpleHttpComponents5MessageSender i interfejsu HttpHost.

Zachowaj ręcznie utworzonego nadawcę przez cały okres życia klienta SOAP, a następnie zapewnij jego normalne zniszczenie. Bean zarządzany przez Springa może korzystać z cyklu życia kontenera. Inne szablony zachowujące innych nadawców utrzymują własną konfigurację transportu.

Powiązane artykuły