当我尝试使用wsimport
导入WSDL时,我收到了奇怪的解析错误。
错误: -
org.xml.sax.SAXParseException: Invalid WSDL file: expected {http://schemas.xmlsoap.org/wsdl/}definitions found definitions at line 1)
我检查了WSDL,我也很惊讶它的第一个元素不是
<wsdl:definitions ...>
而是:
<definitions xmlns:soap="https://schemas.xmlsoap.org/wsdl/soap/" ...>
这可能是问题吗? Web服务是外部的,所以我对WSDL没有任何控制权。我知道的一件事是它是由JAX-WS 2.1.5生成的。它是我的wsimport工具无法理解的自定义WSDL吗?如果是,请告诉我如何解决此问题。感谢。
答案 0 :(得分:0)
基于this conversation,2.1.5版本的JAX-WS可能生成了错误的WSDL,而您正在使用较新版本的wsimport。
答案 1 :(得分:0)
您是否在wsdl的第一行中有以下部分?
<definitions ... xmlns="http://schemas.xmlsoap.org/wsdl/">
如果没有,请添加它,它应该没问题。 原因是,缺少wsdl的名称空间声明。