使用子报告

时间:2016-06-24 03:05:07

标签: java jasper-reports tomcat7

在具有子报表的报表上使用JasperReport 6.2.0时,我得到了java.lang.StackOverflowError

    net.sf.jasperreports.engine.fill.JRFillSubreport.prepare(JRFillSubreport.java:886) 
net.sf.jasperreports.engine.fill.JRFillElementContainer.prepareElements(JRFillElementContainer.java:352) 
net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:421) 
net.sf.jasperreports.engine.fill.JRFillBand.fill(JRFillBand.java:396) 
net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2028) 
...

服务器是openSuse Linux 42.1,Tomcat7.0.53,Java是openjdk版本" 1.8.0_72",MariaDB数据库。

我在某些网站上发现log4j.logger.org.apache.commons.javaflow=info添加log4j.properties并未解决问题。

我的路径中也有commons-javaflow-20060411.jar库。

使用JasperReport 6.3.0进行测试提出了一个

net.sf.jasperreports.engine.JRRuntimeException: 
java.lang.NoSuchMethodError: 
org.apache.commons.javaflow.Continuation.suspend()Ljava/lang/Object;

...

使用Jasperreport 5.x版本时不存在问题。

我在具有相同库版本,Java版本,代码版本等的各种服务器上具有完全相同的安装...(Linux服务器,克隆磁盘安装),但17个服务器中只有3个存在问题...

在另一台服务器上刷新的同一个数据库不会出现问题...非常奇怪......就像它的硬件相关,但它不是因为有些人有相同的硬件而且有一个工作而另一个没有。< / p>

1 个答案:

答案 0 :(得分:0)

最后,我使用了Jasperreports的6.1.1版解决了这个问题。在所有服务器上解决了它。

http://netcologne.dl.sourceforge.net/project/jasperreports/jasperreports/JasperReports%206.1.1/jasperreports-javaflow-6.1.1.jar http://netcologne.dl.sourceforge.net/project/jasperreports/jasperreports/JasperReports%206.1.1/jasperreports-fonts-6.1.1.jar http://jaist.dl.sourceforge.net/project/jasperreports/jasperreports/JasperReports%206.1.1/jasperreports-6.1.1.jar

<强>更新 感谢@ dada67建议,我升级到版本6.3.0而不包括jasperreports-javaflow-x.y.z.jar(并从版本6.1.1中删除所有3个文件),现在一切正常。

因此解决方案是删除jasperreports-javaflow-x.y.z.jar