我们正在尝试在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
答案 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生成临时文件,最后合并块和刷新。
整个操作发生在文件系统中,因此不会发生内存泄漏,如果您的服务器可以处理大量响应,那么报告也会生成。可能需要额外的时间。