在从动态客户端的https URL加载WSDL之前,我需要在HttpConduit上设置适当的配置以避免所有SSL错误。根据{{3}}我们可以硬编码管道但不确定以编程方式进行。有没有办法在String
上创建Client
对象之前抓住HttpConduit?
DynamicClientFactory
答案 0 :(得分:1)
获取保留HttpConduit并自定义http(s)配置的一种方法是HTTPConduitConfigurer。下面的代码段显示了如何完成它。
Bus bus = CXFBusFactory.getThreadDefaultBus();
bus.setExtension(new HTTPConduitConfigurer() {
@Override
public void configure(String name, String address, HTTPConduit conduit) {
//set conduit parameters ...
// ex. disable host name verification
TLSClientParameters clientParameters = new TLSClientParameters();
clientParameters.setHostnameVerifier(new HostnameVerifier() {
@Override
public boolean verify(String hostname, SSLSession session) {
return true;
}
});
conduit.setTlsClientParameters(clientParameters);
}
}, HTTPConduitConfigurer.class);
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance(bus);
Client client = dcf.createClient(wsdlUri);