2014-04-05 90 views
0

我在我的系統中使用'n'個Web服務。我非常關心。但是,最近幾天,我在處理一個外部系統的響應時看到一種奇怪的行爲。Web服務響應轉換問題

這裏是我的問題,

當我要求我的下游系統的一個獲取數據,我得到的響應與一個非常大的XML。在解析系統中的響應時,完整的JAVA線程本身比配置的時間多。因此,對於臨時修復,我們要求下游系統限制響應。

但是,這是怎麼發生的?不管數據有多大,這個毫無瑕疵的過程應該完全正確。

所以我可以知道這個問題的根本原因是什麼?

回答

0

如果您正在解組,那麼整個XML將被轉換爲一個包含XML中指定的所有對象的對象圖。因此,XML越大,得到的對象圖就越大。當然,這需要更多的內存,也許比應用程序對它的處置要更多,這可能會導致OutOfMemoryException異常。 如果收到的XML包含某種項目列表,則可以考慮逐項處理它。您將一次讀入一個項目,然後處理並處理它。然後你只需要大量的內存來適應內存中的一個項目的對象圖。但要做到這一點,你必須重寫你的處理代碼才能使用像SAX這樣的庫。