微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JasperReports:JRPdfExporter导致OOME Java堆Spac

如何解决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 举报,一经查实,本站将立刻删除。