我在 Java 中运行 jasper 报告来生成报告,我使用虚拟器来处理大量数据。但是,在运行了将近 3 个小时后,突然抛出了 java.lang.InterruptedException。它被我的程序捕获,这是堆栈跟踪。我所知道的是,只有当其他进程中断睡眠或空闲进程时才会引发此异常。就我而言,还有什么其他过程可以打断这一点?
下面是控制台输出:
信息:文件名:文件名.pdf 08 8 11 1:06:57 PM com.main.HugeReportGeneratorDriver generateSubReport 信息:[INFO] 输出文件:filename.pdf 08 8, 11 3:33:43 PM net.sf.jasperreports.engine.fill.JRThreadSubreportRunner 暂停 严重:填写 8072489:异常 java.lang.InterruptedException 在 java.lang.Object.wait(本机方法) 在 java.lang.Object.wait(Object.java:485) 在 net.sf.jasperreports.engine.fill.JRThreadSubreportRunner.suspend(JRThreadSubreportRunner.java:185) 在 net.sf.jasperreports.engine.fill.JRBaseFiller.suspendSubreportRunner(JRBaseFiller.java:2095) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.addPage(JRVerticalFiller.java:1836) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillPageBreak(JRVerticalFiller.java:1916) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBreak(JRVerticalFiller.java:1945) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2048) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:757) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportContent(JRVerticalFiller.java:289) 在 net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:131) 在 net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:938) 在 net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:841) 在 net.sf.jasperreports.engine.fill.JRFillSubreport.fillSubreport(JRFillSubreport.java:608) 在 net.sf.jasperreports.engine.fill.JRSubreportRunnable.run(JRSubreportRunnable.java:59) 在 net.sf.jasperreports.engine.fill.JRThreadSubreportRunner.run(JRThreadSubreportRunner.java:205) 在 java.lang.Thread.run(Thread.java:619)
我怀疑问题出在碧玉报告中,对吗?有什么办法可以处理这是我的程序吗?
非常感谢!
——布雷维斯·尤纽斯