【发布时间】:2015-06-26 09:08:26
【问题描述】:
我正在使用 Grails 2.4.4 并尝试使用“apache poi”插件上传 .xlsx 文件,但是当文件大小约为 8 MB 时,我收到 JAVA 堆大小异常。
我的控制器有以下动作和方法:-
def uploadForm() {
String fileName = "D:\\File.xlsx"
Map excelSheetMap = process(fileName)
}
Map process(String fileName) {
ExcelBuilder excelBuilder = new ExcelBuilder(fileName)
//Getting JAVA Heap Size exception here when I am trying to create an object
//of ExcelBuilder with the file
}
ExcelBuilder.groovy 类文件看起来像这样
class ExcelBuilder {
Workbook workbook
ExcelBuilder(String fileName) {
new File(fileName).withInputStream { is ->
workbook = new XSSFWorkbook(is)
}
}
}
我也尝试过使用 grails-excel-import 插件,但我遇到了同样的异常。
有人可以建议如何在 grails 中导入大尺寸的 excel 文件。提前致谢。
【问题讨论】:
-
您是否尝试过增加应用程序内存?例如。
run : [maxMemory: 1280, minMemory: 128, debug: false, maxPerm: 256, forkReserve: true, jvmArgs: jvmArgs]在你的 BuildConfig 中? -
是的,我已经尝试过了,但还是一样。
-
如果你创建一个小项目(grails-less),可能是 groovy 脚本,只测试文件的加载,它会工作吗?
-
您是否尝试过使用
jmc或jvisualvm来查看内存的去向? -
如果你用
-XX:+HeapDumpOnOutOfMemoryError运行你的jvm,你可以在事后分析堆转储。
标签: grails groovy out-of-memory apache-poi