JasperReports:JRPdfExporter导致OOME Java堆Spac

问题描述

我正在使用JRSwapFileVirtualizer处理来自Oracle数据库的大型数据集,报告由SQL查询填充。 JasperFillManager.fillReport成功结束,已创建jasperPrint,并且已正确使用JRSwapFileVirtualizer。

在报表设计中,我有一个表数据集,其中包含8个分组条件。在生成报告PDF时,我有一个java.lang.OutOfMemoryError:Java堆空间:

      java.lang.OutOfMemoryError: Java heap space
java.lang.OutOfMemoryError: Java heap space
    at com.lowagie.text.pdf.ByteBuffer.append_i(UnkNown Source)
    at com.lowagie.text.pdf.ByteBuffer.append(UnkNown Source)
    at com.lowagie.text.pdf.ByteBuffer.formatDouble(UnkNown Source)
    at com.lowagie.text.pdf.ByteBuffer.append(UnkNown Source)
    at com.lowagie.text.pdf.ByteBuffer.append(UnkNown Source)
    at com.lowagie.text.pdf.PdfContentByte.setLineCap(UnkNown Source)
    at net.sf.jasperreports.engine.export.JRPdfExporter.preparePen(JRPdfExporter.java:3147)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportBottomPen(JRPdfExporter.java:3038)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportBox(JRPdfExporter.java:2891)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportFrame(JRPdfExporter.java:3386)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:1108)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportFrame(JRPdfExporter.java:3379)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:1108)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:1063)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:927)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:547)

我的调查要点:

  • XLS导出效果很好
  • 当我删除所有分组+和变量时,PDF可以正常工作,并且可以打印所有3900页
  • 当我增加JVM内存时,会生成报告,但pdf仍然损坏,只有首页工作没有滞后时间

我在互联网上发现了一些类似的问题,但没有找到解决方法

有人可以帮助我吗?

亲切的问候,

Jan

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...