我有普通的 Microsoft webservice 和最新版本的普通 CXF,带有 Java/JDK 1.6、Eclipse 等。当我运行 wsdl2java 时,JAXB 部分抛出错误
“由 JAXB 抛出:未定义的元素声明 's:schema'”
导致它的 WSDL 部分看起来像:
<s:element name="GetDepartmentsResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetDepartmentsResult">
<s:complexType>
<s:sequence>
<s:element ref="s:schema" />
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:sequence>
</s:complexType>
</s:element>
我可以简单地删除吗<s:element ref="s:schema" />
处处保持<s:any/>
?它看起来像是 Java<->Microsoft webservices 互操作性的常见障碍。但是我找不到 CXF 的任何解决方法。
最佳答案
通常您可以删除架构引用。您可能需要更改 <s:any>
至 <s:any maxOccurs="2">
或类似以确保架构元素及其后的任何内容都有空间。
关于web-services - Microsoft Web 服务和 CXF 客户端 : JAXB fails to understand "s:schema",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7148591/