尝试通过客户端访问 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 cannot be cast to javax.xml.ws.BindingProvider
如有任何建议/帮助,我们将不胜感激。提前致谢。
最佳答案
我发现:
((javax.xml.ws.BindingProvider) qport)
可以在使用 JAX-WS 生成的 WSDL 接口(interface)上安全地调用(通过wsimport
)((javax.xml.rpc.Stub) qport)
可以在 JAX-RPC 客户端(由clientgen
创建)上安全地调用
在我的例子中,我使用 clientgen
(JAX-RPC) 创建了 WSDL 接口(interface),因此属性可以设置如下:
javax.xml.rpc.Stub stub = (javax.xml.rpc.Stub) qport;
stub._setProperty("KEY","Value");
关于java - clientgen 生成的 PortType_Stub 无法转换为 javax.xml.ws.BindingProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9946284/