我正在使用IntelliJ连接到外部WSDL。
连接到WSDL并生成我的Java类后,我试图从服务中获取响应。
该服务并不复杂,只是简单的“是”,“否”和“错误”消息响应。
但是我遇到了涉及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)
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/