poi第二次导出excel出错

sweat89 2013-05-28 10:35:51
数据大概有5W多条;
第一次能成功导出,第二次导出就出错,必须得重启tomcat才能正常导出;
第二次导出报如下错:
java.lang.NullPointerException
Exception in thread "ContainerBackgroundProcessor[StandardEngine[Catalina]]" java.lang.OutOfMemoryError: Java heap space
2013-5-28 10:36:02 org.apache.coyote.http11.Http11Processor process
严重: Error processing request
java.lang.OutOfMemoryError: Java heap space
2013-5-28 10:36:07 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler process
严重: Error reading request, ignored
java.lang.OutOfMemoryError: Java heap space
...全文
232 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oh_Maxy 版主 2013-05-30
  • 打赏
  • 举报
回复
为啥不考虑下,是否存在资源未关闭的情况? 另外,如果用到Map等数据结构存储数据的话,在使用完了别指望着GC去回收垃圾,自己清空下比较好。
陈凯 2013-05-30
  • 打赏
  • 举报
回复
内存溢出! 5W多条数据。。。 这个问题的根源是jvm虚拟机的默认Heap大小是64M,可以通过设置其最大和最小值来实现.设置的方法主要是几个. 1.可以在windows 更改系统环境变量 加上JAVA_OPTS=-Xms64m -Xmx512m 2,如果用的tomcat,在windows下,可以在 C:\tomcat5.5.9\bin\catalina.bat 中加上: set JAVA_OPTS=-Xms64m -Xmx256m 位置在: rem Guess CATALINA_HOME if not defined 这行的下面加合适. 3.如果是linux系统 Linux 在{tomcat_home}/bin/catalina.sh的前面,加 set JAVA_OPTS='-Xms64 -Xmx512'
失落夏天 2013-05-28
  • 打赏
  • 举报
回复
内存溢出 解决办法有几种。 首先就是看程序里面是否死循环。这样的话会很耗内存的 第二就是你提到5W条数据导出,那么第二次导出的时候是新的5W条数据么?如果是新的话旧的是否还存在内存里面呢? 第三就是扩展JVM内存Run-->Arguments-->在VM arguments里面填 -Xmx800m试试
sweat89 2013-05-28
  • 打赏
  • 举报
回复
引用 1 楼 flagiris 的回复:
内存溢出,增加虚拟内存。 tomcat的catalina.bat文件最上面加入 set JAVA_OPTS= -Xms1024m -Xmx1024m -Xms -Xmx一般配置成一样比较好。
还是一样
菖蒲老先生 2013-05-28
  • 打赏
  • 举报
回复
内存溢出,增加虚拟内存。 tomcat的catalina.bat文件最上面加入 set JAVA_OPTS= -Xms1024m -Xmx1024m -Xms -Xmx一般配置成一样比较好。
跳蚤图 2013-05-28
  • 打赏
  • 举报
回复

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧