【问题标题】:Dynamic client with JAX-WS使用 JAX-WS 的动态客户端
【发布时间】:2013-10-23 11:01:10
【问题描述】:

使用 CXF 2.7.7,我可以generate dynamic clients 调用网络服务:

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 吗?

【问题讨论】:

    标签: web-services jax-ws cxf


    【解决方案1】:

    您需要 BindingProvider 做什么?如果只是为了 RequestContext,Client 对象已经有了获取它的方法。 (尽管您设置的任何键/值都需要使用 CXF 键,而不是 JAX-WS 键)如果您需要配置管道特定属性,那么 getConduit 调用也在那里。

    【讨论】:

    • 是的,这可能是要走的路。我还使用 SOAPHandler 来捕获进/出的实际 SOAP 消息,但我想我可以在 CXF 中使用拦截器来获得相同的效果吗?我只是希望如果有一种通过 JAX-WS API 实现的简单方法,我可以减少现有代码的更改。
    猜你喜欢
    • 1970-01-01
    • 2010-12-16
    • 2012-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    相关资源
    最近更新 更多