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

Pas hierdie sender voor oproepe op die bestaande template toe en behou die diens-URI, marshaller en ander instellings. Dit is Spring-WS 4.1.0 met Apache HttpClient 5. As die sjabloon 'n toegelate openbare SOAP-diens sonder volmagverifikasie teiken, kan 'n HTTP-adres uit die HTTP-volmaglys die aanpasser se volmag invul.

withDefaults behou die onderskepper wat die deur SOAP verskafde Content-Length en Transfer-Encoding verwyder voordat Apache die HTTP-raamwerk genereer. Om die volmagaanpasser daar by te voeg, verhoed dat daardie integrasie deur 'n kaal kliënt vervang word. Vir 'n afsonderlik geboude Apache-kliënt, behou Spring-WS se onderskepper vir kopverwydering.

Laat die invoere en die sender-generering bymekaar pas. Ouer voorbeelde met HttpComponentsMessageSender/org.apache.http gebruik Apache 4, nie hierdie SimpleHttpComponents5MessageSender en HttpHost-koppelvlak nie.

Behou 'n handmatig geskepte sender vir die leeftyd van die SOAP-kliënt en reël normale vernietiging daarna. 'n Boon wat deur Spring bestuur word, kan die houer se lewensiklus gebruik. Ander sjablone wat ander senders behou, hou hul eie vervoerkonfigurasie.

Verwante artikels