2013-10-11 108 views
0

我有一個關於通過SOAP處理大XML的問題。 在Axis中寫道, Axis基本上是Apache SOAP 3.0。這是一個從頭開始的重寫,圍繞流模型進行設計(在內部使用SAX而非DOM)。其目的是創建一個更模塊化,更靈活,性能更高的SOAP實現(相對於Apache SOAP 2.0)。 http://axis.apache.org/axis/faq.htmlcxf vs axis(肥皂大xml)

你能告訴我cxf如何在內部處理SOAPMessages。它使用SAX而不是DOM嗎?如果沒有,我認爲BI XML的AXIS將是一個更好的選擇,然後..?

其次,我看到javax.xml.soap.SOAPPart實現了Document,Node。這是否意味着無論什麼對於SOAP實現總是會創建DOM。

感謝

回答

1

在這一點上,幾乎沒有什麼Axis2中能做到這一點CXF不能做的一樣好或更好。 CXF還在內部使用StAX處理傳入消息。

這就是說,你提到SOAPPart。那些是SAAJ的東西。如果你把鎮推廣到使用SAAJ模型進行處理,那麼隨着SAAJ模型要求將整個東西拉入內存,流被打破。大部分CXF儘量避免SAAJ,除非它是必需的(JAX-WS處理程序需要它,WS-Security當前需要它)。

+0

謝謝。因此,如果我在任何時候都將SOAPEnvelope拉到內存中,否則會在內存中創建整個樹? –