Konfigurowanie serwera proxy Spring-WS 4.1 z HttpComponents 5
Dostosuj fabrykę klienta HttpComponents5 w Spring-WS 4.1 i podłącz powstałego nadawcę do 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);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.