java - 使用 javax.xml.namespace.Qname 和 javax.xml.ws.handler.PortInfo 的类转换异常

标签 java soap port jax-ws wsdl2java

我正在使用 IntelliJ 连接到外部 WSDL。

在连接到 WSDL 并生成我的 Java 类后,我试图从该服务获得响应。

该服务一点也不复杂,只是简单的"is"、“否”和“不正确”消息响应。

但是我得到一个涉及 PortInfoQname 的类转换异常。

方法列表调用如下。

 Service helloService = Service.create(
      helloWsdlUrl, 
      new QName(nameSpaceUri, serviceName));

 List list = helloService.getHandlerResolver().getHandlerChain(
      (PortInfo) new QName(nameSpaceUri, portName));

 list.add(new HandlerInfo((Class) null, (Map)null, (QName[])null));

我得到的错误信息是:

Exception in thread "main" java.lang.ClassCastException: 
javax.xml.namespace.QName cannot be cast to javax.xml.ws.handler.PortInfo
at Client.main(Client.java:37)

picture of portinfo removed

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

您的问题是 QName 无法转换为 PortInfo。产生错误的是以下代码:

(PortInfo) new QName(...)

你为什么要做这个类型转换? getHandlerChain() 应该能够接受一个 QName 实例。

关于java - 使用 javax.xml.namespace.Qname 和 javax.xml.ws.handler.PortInfo 的类转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55505601/

相关文章:

java - 获取导入本体列表--OWL API

java - 如何使用java恢复数据库备份文件

web-services - 有人使用带有 Delphi 的 Bing map Web 服务吗?

c++ - 是否可以获取正在监听 Windows 端口的进程的线程 ID?

java - 如何在一组数字上找到 GCD、LCM

Java 2D 图形 : Animate Fractal tree

soap - 使用经典 ASP 发送 'application/soap+xml' SOAP 请求

java - SoapFault 异常 : [HTTP] Unsupported Media Type when accessing Java web-service from PHP

tomcat - 如何在不同端口后面的单个 Tomcat 实例上运行不同的应用程序?

Apache 将请求转发到另一台服务器