【发布时间】: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