我有一个spring boot Rest服务,我正在使用它创建Excel文件(xlsm)。在应用程序首次启动时遇到一个奇怪的问题,它将很容易创建一个excel文件,但是再次调用rest端点会生成OutOfMemoryError异常。
false
以下是创建此异常的代码:
plugins: [
{
ptype: 'rowexpander',
rowBodyTpl: [
'<div id="MyUniqueId_{MyDataColumn1}"></div>'
]
}
]
由于我正在关闭资源,但仍然存在某种原因造成的问题。我在这里阅读了其他已经创建的问题,但似乎没有任何帮助。有解决这个问题的线索吗?
答案 0 :(得分:0)
excel文件大小是否太大?
如果是,则可能导致此错误,用于通过poi生成和读取大型excel文件的内存使用率很高。
您的try语法正确,资源将始终被关闭。
您可以尝试增加执行jvm的最大内存。
例如,在初始化时使用-Xmx2048m
。
答案 1 :(得分:0)
代替XSSFWorkbook(将整个Excel工作簿保留在内存中),请尝试使用高效,高性能的流式SXSSFWorkbook类,如下所示:
SXSSFWorkbook workbook = new SXSSFWorkbook(100);
其中100是将保留在内存中并实时处理的默认行数。