2012-11-14 41 views
1

如何從SOAPBody獲取原始XML?也許某些util函數只會給我Body xml(不是正文)。我不想重複代碼來遍歷每個節點/孩子 - 它可能已經存在於某些util中?從Java中的SOAPBody獲取Raw XML(駱駝流?)

駱駝流有一個dataconverter「soapjxb」,但我沒有需要映射/解組到Java對象。

爲什麼我需要一個?:清理操作

一個客戶端應用程序(即我試圖用ApacheCamel整合),是把一個XML消息,我的MQ,該消息被嵌入肥皂內信封(「不必要的噪音」),我無法更改客戶端應用程序。我必須丟棄肥皂包裹,並將肥皂體內的xml貼到另一個jmsqueue。

PS: 我知道如何從的SOAPMessage獲取原始XML這裏提到:Getting Raw XML From SOAPMessage in Java

回答

1

如果你有的SoapEnvelope在XML,那麼就使用xpath篩選出您想要的XML,並把它的道路上。 ..

.setBody(xpath("//SOAPBody"))... 
+0

試過的xml當量的上述的: \t <交易REF = 「txnPolicyPROP-REQD」/> \t //的SOAPBody \t <豆REF = 「預處理」 方法= 「populateCorrelationId」/> \t <豆REF = 「預處理」 方法= 「stampMsgWithErfRequestId」> \t 錯誤我得到: \t在傳遞嘗試:5抓住: org.apache.camel.RuntimeCamelException:org.apache.camel.NoTypeConversionAvailableException:沒有類型轉換器可用於將類型:org.apache.xml.dtm.ref.DTMNodeList轉換爲所需的類型:org.w3c.dom.Document with value [email protected] – Espresso