我正在使用 IntelliJ 连接到外部 WSDL。
在连接到 WSDL 并生成我的 Java 类后,我试图从该服务获得响应。
该服务一点也不复杂,只是简单的"is"、“否”和“不正确”消息响应。
但是我得到一个涉及 PortInfo
和 Qname
的类转换异常。
方法列表调用如下。
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)
如有任何帮助,我们将不胜感激。
谢谢
最佳答案
您的问题是 QName
无法转换为 PortInfo
。产生错误的是以下代码:
(PortInfo) new QName(...)
你为什么要做这个类型转换? getHandlerChain()
应该能够接受一个 QName
实例。
关于java - 使用 javax.xml.namespace.Qname 和 javax.xml.ws.handler.PortInfo 的类转换异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55505601/