WebServiceTemplate wysyła przez swój WebServiceMessageSender. Skonfiguruj klienta HTTP tego nadawcy, gdy miejsce docelowe SOAP wymaga proxy przekazującego.

Dla Spring WS 4.1 z dostępnym Apache HttpClient 5:

var http = org.apache.hc.client5.http.impl.classic.HttpClients.custom()
    .setProxy(new org.apache.hc.core5.http.HttpHost(
        "http", "proxy.example", 8080))
    .addRequestInterceptorFirst(
        new org.springframework.ws.transport.http
            .HttpComponents5ClientFactory.RemoveSoapHeadersInterceptor())
    .build();

var sender = new org.springframework.ws.transport.http
    .HttpComponents5MessageSender(http);
webServiceTemplate.setMessageSender(sender);

webServiceTemplate to istniejący szablon aplikacji. Jego URI usługi SOAP pozostaje miejscem docelowym; klient HTTP przechowuje pośrednika, którym może być publiczny kandydat z listy proxy HTTP, gdy ta trasa jest dozwolona.

Konstruktor niestandardowego klienta nie dodaje zwykłego interceptora nagłówków nadawcy. Zachowaj go podczas składania klienta: usuwa on nagłówki transportowe dostarczane przez SOAP, którymi zarządza przetwarzanie żądań Apache. Nadawca zbudowany przez domyślne ustawienia fabryki klientów to inna ścieżka budowy, która zachowuje tę integrację.

Dodaj wymagane poświadczenia proxy i limity czasu do niestandardowego klienta przez jego własne obsługiwane interfejsy. Metody setter nadawcy nie zastępują konfigurowania już dostarczonego klienta.

Zachowaj klienta dla obciążenia szablonu i zamknij posiadane zasoby przy wyłączaniu. Ten przykład używa nadawcy HttpClient 5; przykłady Spring WS importujące org.apache.http opisują inną generację klientów.

Powiązane artykuły