2013-10-23 102 views
0

随着CXF 2.7.7动态客户端,我可以generate dynamic clients调用Web服务:与JAX-WS

JaxWsDynamicClientFactory dynamicClientFactory = JaxWsDynamicClientFactory.newInstance(); 
Client client = dynamicClientFactory.createClient(wsdlURL); 
http.getAuthorization().setUserName("username"); 
http.getAuthorization().setPassword("password"); 
Object arg = Thread.currentThread().getContextClassLoader().loadClass("com.foo.Arg").newInstance(); 
Object[] response = client.invoke("someMethodName", arg); 

特别是,我可以沉思实例化和填充生成的类。

使用JAX-WS API可以实现类似的效果吗?

或者,我可以获得使用JaxWsDynamicClientFactory生成的客户端的javax.xml.ws.BindingProvider吗?

回答

0

你需要什么BindingProvider?如果仅用于RequestContext,则Client对象已具有获取该对象的方法。 (尽管你设置的任何键/值都需要使用CXF键,而不是JAX-WS键)。如果需要配置管道特定属性,getConduit调用也是如此。

+0

是的,那可能是要走的路。我还使用SOAPHandler来捕获进出的实际SOAP消息,但是我收集到的我可以在CXF中使用拦截器来获得相同的效果?我只是希望如果通过JAX-WS API有一个简单的方法来完成它,我可以改变更少的现有代码。 –