0
我在使用PAYLOAD模式下使用Camel CXF時遇到問題。我發送的SOAP請求的身體沒有名稱空間前綴。駱駝CxfPayload使用沒有前綴的名稱空間時出現問題(xmlns:xmlns)
<soap:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://www.mycompnay.com/test/" xmlns:ns1="http://www.mycompany.com/test/1/">
<soap:Body>
<request>
<ns1:identifier>TEST</ns1:identifier>
</request>
</soap:Body>
</soap:Envelope>
,我試圖得到CXF體元素cxfPayload.getBody().get(0)
這給我的元素列表。
現在無論何時我使用無前綴的名稱空間,該元素都有一個屬性「xmlns:xmlns」。我注意到這發生在兩個地方。
- DefaultCxfBiding.addNamespace(元素,地圖)
- CxfPayload.addNamespace(元素,地圖)
而且在這兩個地方, 「的xmlns:」 簡直是前綴nsMap.get(關鍵)而不檢查值是否爲xmlns。
這在架構驗證過程中會導致問題,並且如果將相同的CXFPayload發送到其他服務(代理服務模式),則會導致Out攔截器失敗,因爲「xmlns:xmlns」不是有效的名稱空間屬性。
欣賞幫助,因爲我不確定是否在這裏丟失了某些東西。
優秀。謝謝。 – 2014-09-03 17:49:33