有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

targetnamespace的java CXF客户端复制

我在同一台服务器上托管了一个webservice和一个webapp,它们是由wsdl2java生成的。我可以通过SoapUI与服务联系,它在发布到live server时返回一个名称空间声明,但当我在本地工作并使用SoapUI时,它会生成两个xlmns=“”实例,而不是xml中的一个实例。我在下面复制了一个示例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>

因此,当它解组时,当我将我的webapp用作webservice客户端时,它会严重失败。为什么CXF要添加第二个名称空间?我一直看着调试,直到返回,它在webservice端看起来100%完美,完全没有重复的名称空间。直到xml返回到客户端,这种情况才会发生


共 (1) 个答案

  1. # 1 楼答案

    在XML中,每个元素的属性都是唯一的,所以如果发生这种情况,那么它可能是一个bug,您应该这样报告它。我以前使用过CXF,它是一个很棒的库,但不幸的是它并不完美。我不得不处理各种版本,升级到一个不稳定的版本,以避开我遇到的错误

    W3C XML Spec

    An attribute name MUST NOT appear more than once in the same start-tag or empty-element tag.