我正在使用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)
非常感谢您的帮助。
谢谢
getHandlerChain
中使用过一个接受QName
的HandlerResolver
。你可以从服务描述中获取PortInfo
,或者构建一个。你只需要一种方法来返回绑定ID、端口和服务名称。 - dovetalk