【问题标题】:Collision in ObjectFactory of two things that should be only oneObjectFactory 中应该只有一个的两件事情发生冲突
【发布时间】:2010-12-13 13:41:22
【问题描述】:

我正在尝试在来自第 3 方的 WSDL 中执行 wsimport(通过 netbeans 6.9.1),但它在 JAXB 中不断生成此错误:

Two declarations cause a collision in the ObjectFactory class.

碰撞是关于这两件事的:

在messages.xsd中:

<xs:element name="PingRequest" nillable="true" type="tns:PingRequest" />

在 service.xsd 中:

<xs:element name="Ping">
  <xs:complexType>
    <xs:sequence>
      <xs:element xmlns:q1="http://www.3rd-party-uri-here/messages/" minOccurs="0" name="request" nillable="true" type="q1:PingRequest" /> <!-- HERE! -->
    </xs:sequence>
  </xs:complexType>
</xs:element>

我在 stackoverflow 中看到 JAXB 无法处理两个不同元素具有相同名称或名称仅大写不同的情况。但是,在这种情况下,这两个元素实际上应该是相同的(第二个引用第一个)。那么,我该怎么办?

【问题讨论】:

  • 你找到答案了吗?
  • @Cuga - 不,我从来没有找到答案。

标签: java jaxb wsimport


【解决方案1】:

我遇到了类似的问题,描述如下:wsimport - two declarations cause collision, same line number given

运行此命令时出现此错误:

wsimport ./bwWsdl.xml -p com.generated -Xnocompile -d ../src -extension -keep -XadditionalHeaders -B-XautoNameResolution

感谢@Petru Gardea 的帮助,我最终能够通过将-p com.generated 包规范省略到wsimport 来解决这个问题。所以这就是我最终能够解决这个问题的方法:

wsimport ./bwWsdl.xml -Xnocompile -d ../src -extension -keep -XadditionalHeaders -B-XautoNameResolution

【讨论】:

    猜你喜欢
    • 2016-01-06
    • 2011-11-21
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多