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

Bu göndəricini çağırışlardan əvvəl mövcud template üzərinə tətbiq edin; xidmətin URI-si, marshaller və digər parametrlər qorunub qalsın. Bu, Apache HttpClient 5 ilə Spring-WS 4.1.0-dır. Əgər şablon proksi autentifikasiyası olmadan icazə verilmiş açıq SOAP xidmətini hədəfləyirsə, HTTP proksi siyahısından bir HTTP ünvanı fərdiləşdiricinin proksisini doldura bilər.

withDefaults Apache HTTP çərçivəsini yaratmazdan əvvəl SOAP tərəfindən verilən Content-Length və Transfer-Encoding-i silən interceptor-u saxlayır. Proksi fərdiləşdiricisini orada əlavə etmək bu inteqrasiyanın çılpaq müştəri ilə dəyişdirilməsinin qarşısını alır. Ayrıca qurulmuş Apache müştərisi üçün Spring-WS-in başlıq silən interceptor-unu saxlayın.

İmportları və göndəricinin yaradılmasını uyğunlaşdırın. HttpComponentsMessageSender/org.apache.http istifadə edən köhnə nümunələr Apache 4-ə aiddir, bu SimpleHttpComponents5MessageSender və HttpHost interfeysinə deyil.

Əl ilə yaradılmış göndəricini SOAP müştərisinin bütün ömrü boyu saxlayın və sonra onun normal məhv edilməsini təmin edin. Spring tərəfindən idarə olunan bean konteynerin həyat dövründən istifadə edə bilər. Digər göndəriciləri saxlayan digər şablonlar öz nəqliyyat konfiqurasiyalarını qoruyurlar.

Əlaqəli məqalələr