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

გამოიყენეთ ეს გამგზავნი არსებულ template-ზე გამოძახებებამდე, შეინარჩუნეთ სერვისის URI, marshaller და სხვა პარამეტრები. ეს არის Spring-WS 4.1.0 Apache HttpClient 5-ით. თუ შაბლონი მიმართულია დაშვებულ საჯარო SOAP სერვისზე პროქსის აუთენტიფიკაციის გარეშე, HTTP მისამართი HTTP პროქსების სიიდან შეავსებს მორგების პროქსის.

withDefaults ინარჩუნებს ინტერცეპტორს, რომელიც შლის SOAP-ის მიერ მოწოდებულ Content-Length და Transfer-Encoding სათაურებს მანამ, სანამ Apache შექმნის HTTP ჩარჩოს. იქ პროქსის მორგების დამატება თავიდან აიცილებს ამ ინტეგრაციის შიშველი კლიენტით ჩანაცვლებას. ცალკე აწყობილი Apache კლიენტისთვის შეინარჩუნეთ Spring-WS-ის სათაურების წამშლელი ინტერცეპტორი.

შეათანხმეთ იმპორტები და გამგზავნის შექმნა. ძველი მაგალითები HttpComponentsMessageSender/org.apache.http-ით იყენებენ Apache 4-ს და არა ამ SimpleHttpComponents5MessageSender-სა და HttpHost ინტერფეისს.

შეინახეთ ხელით შექმნილი გამგზავნი SOAP კლიენტის მთელი სიცოცხლის განმავლობაში და შემდეგ უზრუნველყავით მისი ჩვეულებრივი განადგურება. Spring-ის მიერ მართული bean-ს შეუძლია კონტეინერის სასიცოცხლო ციკლის გამოყენება. სხვა გამგზავნების შემნახველი შაბლონები ინარჩუნებენ საკუთარ ტრანსპორტის კონფიგურაციას.

დაკავშირებული სტატიები