【发布时间】:2014-09-14 15:01:06
【问题描述】:
我在集成第三方网络服务时遇到了问题。 我收到以下错误: [错误] 无法在项目 pcm_portal 上执行目标 org.apache.cxf:cxf-codegen-plugin:2.4.2:wsdl2java (generate-sources):由 JAXB 抛出:“string15”已在模式的第 305 行第 2 列定义... -> [帮助 1]
其实我理解错误,这个文件包含同一个目标命名空间的多个模式,我们可以找到两个模式中定义的相同 simpleType (string15)。
是这样的:
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://siebel.com/CustomUI" ...>
<types>
<!-- ... -->
<xsd:schema elementFormDefault="qualified"
attributeFormDefault="unqualified"
targetNamespace="http://myNs/"
xmlns:xsdLocal3="http://myNs/">
<!-- ... -->
<xsd:simpleType name="string15">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="15"></xsd:maxLength>
</xsd:restriction>
</xsd:simpleType>
<!-- ... -->
</xsd:schema>
<!-- ... -->
<xsd:schema elementFormDefault="qualified"
attributeFormDefault="unqualified"
targetNamespace="http://myNs/"
xmlns:xsdLocal3="http://myNs/">
<!-- ... -->
<xsd:simpleType name="string15">
<xsd:restriction base="xsd:string">
<xsd:maxLength value="15"></xsd:maxLength>
</xsd:restriction>
</xsd:simpleType>
<!-- ... -->
</xsd:schema>
<!-- ... -->
</types>
</definitions>
我的问题是
1) 有没有办法让wsdl2java来处理这样的文件?
今天我通过 maven cxf-codegen-plugin 使用它,它是这样配置的:
<defaultOptions>
<extraargs>
<extraarg>-exsh</extraarg>
<extraarg>true</extraarg>
<extraarg>-xjc-npa</extraarg>
</extraargs>
</defaultOptions>
2) 如果没有人知道一个参考文档,因为给我 wsdl 的团队说没有问题(实际上 SoapUI 对这个 WSDL 没有任何问题),所以有人知道这可能是我的论据吗?
【问题讨论】:
-
感谢您的回答,这实际上非常接近我的问题。好吧,我不确定解决方法是否适用,因为我的重复项位于同一个 wsdl 文件中(希望未修改/未拆分)。
-
你是怎么解决这个问题的?面临同样的问题。
-
您好,很遗憾没有真正的解决方案。 wsdl 确实无效,不能按原样处理。我不得不修改它以删除重复的条目。
标签: java web-services maven cxf wsdl2java