【发布时间】:2009-12-01 07:21:50
【问题描述】:
原因:java.lang.OutOfMemoryError: Java heap space 在 java.lang.AbstractStringBuilder.expandCapacity(未知来源) 在 java.lang.AbstractStringBuilder.append(未知来源) 在 java.lang.StringBuffer.append(未知来源) 在 java.io.StringWriter.write(未知来源) 在 com.ctc.wstx.sw.BufferingXmlWriter.flushBuffer(BufferingXmlWriter.java:1358) 在 com.ctc.wstx.sw.BufferingXmlWriter.flush(BufferingXmlWriter.java:224) 在 com.ctc.wstx.sw.BufferingXmlWriter.close(BufferingXmlWriter.java:198) 在 com.ctc.wstx.sw.BaseStreamWriter._finishDocument(BaseStreamWriter.java:1429) 在 com.ctc.wstx.sw.BaseStreamWriter.close(BaseStreamWriter.java:264) 在 org.codehaus.stax2.ri.Stax2EventWriterImpl.close(Stax2EventWriterImpl.java:178) 在 org.utils.JcoFunctionToXmlTransformer.transform(JcoFunctionToXmlTransformer.java:163
目标 - 将 SAP 返回的 JcoTable 形式的数据转换为 XML。
问题 - java.lang.OutOfMemoryError: Java 堆空间。
当数据非常庞大时,如果行数超过 25,000 会出现上述错误 我们面临同样的问题,即使在使用 Jco API 方法转换为 XML 并且还使用外部自定义代码(使用 Stax API)逐节点读取并作为 XML 流式传输时
【问题讨论】:
-
显示代码! (由于某种原因,cmets 至少需要 15 个字符)
-
“巨大”已经不是以前的样子了……
标签: java xml memory-management