我正在尝试从第三方WSDL创建客户端Java类。但是,当我在项目上运行 mvn package 时,使用xjc生成Java类时会显示以下错误:
解析模式时出现[错误]错误。位置[http://ultron.illovo.net:9704/analytics/saw.dll/wsdl/v6 {2,257}]。 org.xml.sax.SAXParseException; systemId:http://ultron.illovo.net:9704/analytics/saw.dll/wsdl/v6; lineNumber:2; columnNumber:257; JAX B版本属性必须存在
以下是WSDL的摘录:
<xsd:schema xmlns:jxb="http://java.sun.com/xml/ns/jaxb" elementFormDefault="qualified" jxb:version="1.0" targetNamespace="urn://oracle.bi.webservices/v6" version="1.0">
<xsd:annotation>
<xsd:appinfo>
<jxb:schemaBindings>
<jxb:package name="oracle.bi.web.soap">
<jxb:javadoc/>
</jxb:package>
</jxb:schemaBindings>
</xsd:appinfo>
</xsd:annotation>
.
.
.
因此版本明确指定在 标记中。是否还需要在绑定中指定版本,如下所示:
<jaxws:bindings xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">
<jaxws:package name="oracle.bi.web.soap">
<jaxws:javadoc/>
</jaxws:package>
</jaxws:bindings>
和
<wsdl:operation name="import">
<jaxws:bindings xmlns:jaxws="http://java.sun.com/xml/ns/jaxws">
<jaxws:method name="_import">
<jaxws:javadoc>imports change log</jaxws:javadoc>
</jaxws:method>
</jaxws:bindings>
<wsdl:input message="sawsoap:importIn"/>
<wsdl:output message="sawsoap:importOut"/>
</wsdl:operation>