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

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

该服务并不复杂,只是简单的“是”,“否”和“错误”消息响应。

但是我遇到了涉及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/

10-10 09:38