引起:java.lang.OutOfMemoryError:Java堆空间
at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
at java.lang.AbstractStringBuilder.append(Unknown Source)
在java.lang.StringBuffer.append(未知来源)
at java.io.StringWriter.write(Unknown Source)
在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)
at org.codehaus.stax2.ri.Stax2EventWriterImpl.close(Stax2EventWriterImpl.java:178)
at org.utils.JcoFunctionToXmlTransformer.transform(JcoFunctionToXmlTransformer.java:163
目标 - 将SAP以JcoTable形式返回的数据转换为XML。
问题 - java.lang.OutOfMemoryError:Java堆空间。
当数据非常庞大时,如果行数超过25,000,则会出现上述错误
我们面临同样的问题,即使在使用Jco API方法转换为XML并使用外部自定义代码(使用Stax API)逐节点读取和流式传输为XML时也是如此