clientgen生成的PortType_Stub无法强制转换为javax.xml.ws.BindingProvider

时间:2012-03-30 15:45:42

标签: java web-services client jax-ws jax-rpc

在尝试通过客户端访问Web服务时,我无法获取requestContext。我试图像这样访问requestContext:

QuerySysStatService querySystem=new QuerySysStatService_Impl(wsdl);
QuerySysStatPortType qport=querySystem.getQuerySysStatPortType();
Map<String, Object> rContext =((BindingProvider)qport).getRequestContext();

但是当我执行时:

  

((BindingProvider)qport)

我明白了:

  

java.lang.ClassCastException:    com.demo.client.service.QuerySysStatPortType_Stub无法强制转换为javax.xml.ws.BindingProvider

任何建议/帮助表示赞赏。提前谢谢。

1 个答案:

答案 0 :(得分:1)

我发现:

    可以安全地在使用 JAX-WS 生成的WSDL接口上调用
  • ((javax.xml.ws.BindingProvider) qport)wsimport
  • 可以安全地在 JAX-RPC 客户端(由((javax.xml.rpc.Stub) qport)创建)上调用
  • clientgen

在我的例子中,我使用clientgen(JAX-RPC)创建了WSDL接口,因此属性可以设置如下:

javax.xml.rpc.Stub stub = (javax.xml.rpc.Stub) qport;
stub._setProperty("KEY","Value");