【问题标题】:CXF Client Side Duplication of targetnamespace目标命名空间的 CXF 客户端重复
【发布时间】:2010-04-13 12:36:49
【问题描述】:

我在同一台服务器上托管一个 Web 服务和一个 Web 应用程序,由 wsdl2java 生成。我可以通过 SoapUI 很好地联系该服务,它在发布到实时服务器时返回一个命名空间声明,但是当我在本地工作并使用 SoapUI 时,它会在我的 xml 中生成两个 xlmns="" 实例而不是一个实例。我在下面复制了一个示例 xml 文件:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>
<SendResponse xmlns="http://myendpoint.org/service" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<Receipt>
<MyReceipt xmlns:ns3="http://myendpoint.org/service" xmlns="" xmlns="" xmlns:ns6="http://myapp.myserver.net/myservicegroup/myservice/V01" receiptVersion="V01">
  <ReceiptHeader>
    <ReceiptTimestamp>2010-04-13T08:27:03.036-04:00</ReceiptTimestamp>
  </ReceiptHeader>
  <TransmissionReceipt>
    <TransmissionID>testuser</TransmissionID>
    <TransmissionTimestamp>2010-04-13T08:27:03.036-04:00</TransmissionTimestamp>
  </TransmissionReceipt>
</MyReceipt></Receipt></SendResponse></soap:Body></soap:Envelope>

因此,当它解组时,当我将我的 web 应用程序用作 web 服务客户端时,它会严重失败。为什么 CXF 要添加第二个命名空间?我一直观察调试直到返回,它在 web 服务端看起来 100% 完美,根本没有重复的名称空间。直到xml返回到客户端才会发生。

【问题讨论】:

    标签: java cxf web-services


    【解决方案1】:

    在 XML 中,每个元素的属性都是唯一的,因此如果发生这种情况,则可能是一个错误,您应该报告它。我以前使用过 CXF,它是一个很棒的库,但不幸的是它并不完美。我不得不弄乱各种版本,升级到一个不稳定的版本来解决我遇到的错误。

    W3C XML Spec

    一个属性名称不能在同一个起始标签或空元素标签中出现多次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多