Наладзіць проксі Spring-WS 4.1 з HttpComponents 5
Наладзьце кліенцкую фабрыку HttpComponents5 ў Spring-WS 4.1 і далучыце атрыманы адпраўнік да 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 і забяспечце звычайнае знішчэнне пасля. Bean, якім кіруе Spring, можа выкарыстоўваць жыццёвы цыкл кантэйнера. Іншыя шаблоны, што захоўваюць іншыя адпраўнікі, захоўваюць уласную канфігурацыю транспарту.