jasper报告服务器OutOfMemoryError:PermGen空间错误

时间:2015-12-23 11:14:13

标签: java tomcat7 out-of-memory jasperserver

我们正在尝试在Ubuntu服务器上设置Jasper报告。

java版本是1.7.0_79

Tomcat版本为-7.0.67

当我们启动tomcat服务器并尝试访问jasper服务器的主页时,

我们得到以下异常

  

处理程序处理失败;嵌套异常是   java.lang.OutOfMemoryError:PermGen space

我尝试更改JVM参数,但它仍无法正常工作。

我也试过改变Permgen的大小

这是setenv.sh文件

的内容
EXPORT JAVA_OPTS=-Djava.awt.headless=true -Xms512m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=3072m -Xss2m -XX:+UseConcMarkSweepGC -XX:+CMSClassUnloadingEnabled

1 个答案:

答案 0 :(得分:0)

可能由于生成巨大的pdf文件而发生。 你可以使用 //offertableheight.constant = CGFloat( 400) offertableheight.constant = CGFloat( 46*arrayForOfferTable.count + 40) }

JRFileVirtualizer

此处JRFileVirtualizer virtualizer = new JRFileVirtualizer(REPORT_CHUNK_SIZE,tempReportPath); parameters.put(JRParameter.REPORT_VIRTUALIZER,virtualizer); 表示您希望在完整记录上存储多少页面,REPORT_CHUNK_SIZE表示您的文件系统位置,其中jasper生成临时文件,最后合并块和刷新。

整个操作发生在文件系统中,因此不会发生内存泄漏,如果您的服务器可以处理大量响应,那么报告也会生成。可能需要额外的时间。