Spring-WS 4.1 პროქსის კონფიგურაცია HttpComponents 5-ით
მოარგეთ Spring-WS 4.1-ის HttpComponents5 კლიენტის ფაბრიკა და მიღებული გამგზავნი მიაბით 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);გამოიყენეთ ეს გამგზავნი არსებულ 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-ს შეუძლია კონტეინერის სასიცოცხლო ციკლის გამოყენება. სხვა გამგზავნების შემნახველი შაბლონები ინარჩუნებენ საკუთარ ტრანსპორტის კონფიგურაციას.