out-of-memory - 春季作业执行上下文中的 OutOfMemoryException
问题描述
将大对象放入 JobApplicationContext 时出现以下错误。该对象被转换为 JSON 并保存在 BATCH_JOB_EXECUTION_CONTEXT 中,但不确定为什么我们在处理编写器步骤时内存不足。
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:3332)
at java.lang.AbstractStringBuilder.ensureCapacityInternal(AbstractStringBuilder.java:124)
at java.lang.AbstractStringBuilder.append(AbstractStringBuilder.java:448)
at java.lang.StringBuffer.append(StringBuffer.java:270)
at java.io.StringWriter.write(StringWriter.java:101)
at org.codehaus.jettison.json.JSONObject.write(JSONObject.java:1238)
at org.codehaus.jettison.json.JSONArray.write(JSONArray.java:848)
at org.codehaus.jettison.json.JSONObject.write(JSONObject.java:1236)
at org.codehaus.jettison.json.JSONArray.write(JSONArray.java:848)
at org.codehaus.jettison.json.JSONObject.write(JSONObject.java:1236)
at org.codehaus.jettison.json.JSONObject.write(JSONObject.java:1234)
at org.codehaus.jettison.json.JSONArray.write(JSONArray.java:848)
at org.codehaus.jettison.json.JSONObject.write(JSONObject.java:1236)
at org.codehaus.jettison.json.JSONArray.write(JSONArray.java:848)
at org.codehaus.jettison.json.JSONObject.write(JSONObject.java:1236)
at org.codehaus.jettison.json.JSONArray.write(JSONArray.java:848)
at org.codehaus.jettison.json.JSONObject.write(JSONObject.java:1236)
at org.codehaus.jettison.json.JSONObject.write(JSONObject.java:1234)
at org.codehaus.jettison.json.JSONArray.write(JSONArray.java:848)
at org.codehaus.jettison.json.JSONObject.write(JSONObject.java:1236)
at org.codehaus.jettison.json.JSONObject.write(JSONObject.java:1234)
at org.codehaus.jettison.json.JSONArray.write(JSONArray.java:848)
at org.codehaus.jettison.json.JSONObject.write(JSONObject.java:1236)
at org.codehaus.jettison.json.JSONArray.write(JSONArray.java:848)
at org.codehaus.jettison.json.JSONObject.write(JSONObject.java:1236)
at org.codehaus.jettison.mapped.MappedXMLStreamWriter.writeJSONObject(MappedXMLStreamWriter.java:258)
at org.codehaus.jettison.mapped.MappedXMLStreamWriter.writeEndDocument(MappedXMLStreamWriter.java:244)
at com.thoughtworks.xstream.io.xml.StaxWriter.endNode(StaxWriter.java:149)
at com.thoughtworks.xstream.io.WriterWrapper.endNode(WriterWrapper.java:37)
at com.thoughtworks.xstream.io.path.PathTrackingWriter.endNode(PathTrackingWriter.java:48)
at com.thoughtworks.xstream.core.TreeMarshaller.start(TreeMarshaller.java:83)
at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.marshal(AbstractTreeMarshallingStrategy.java:37)
解决方案
推荐阅读
- android-studio - 在 Android 应用中使用 Google 日历的正确方法?
- javascript - 从单个树创建聚合树
- r - 我可以在 RStudio 的散点图中识别点并仍然使用 knitr 吗?
- javascript - 如何重新排序存储在 Mongo 中的这个数组中的项目?
- http - HTTP 服务器连接管理
- reactjs - Reactjs:淡入数据无法正常工作
- javascript - Mapbox-gl js 离线模式
- java - 如何创建一个包含两个独立类的 LinkedList?
- go - 使用 make 为不同架构构建动态目标?
- mysql - 合并两个 MySQL 表 SQL 语句