java - clientgen 生成的 PortType_Stub 无法转换为 javax.xml.ws.BindingProvider

标签 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 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/

相关文章:

java - Java 如何将文件从一个目录复制到另一个目录

java - zkCli.sh 连接到 SSL 端口 2281 上的服务器

java - 将 Spring 服务公开为 SOAP web 服务

C - read() 从不在服务器端阻塞

Java 客户端/服务器应用程序不会 readLine()

c++ - 如何使用 Poco C++ 从 HTTP 服务器响应中读取图像内容?

java - 这是我第一次尝试 Java 小程序。它只是一个应该移动的简单正方形

java - 在 Java 中解析和检索 JSON 信息——JSONObject 与 JSONArray?

c# - Windows 8 商店应用程序和 WCF 服务

java - eclipse中wsdl到java