在CXF动态客户端上加载WSDL之前访问HttpConduit

时间:2017-04-23 04:39:22

标签: wsdl cxf http-conduit

在从动态客户端的https URL加载WSDL之前,我需要在HttpConduit上设置适当的配置以避免所有SSL错误。根据{{​​3}}我们可以硬编码管道但不确定以编程方式进行。有没有办法在String上创建Client对象之前抓住HttpConduit?

DynamicClientFactory

1 个答案:

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