在具有子报表的报表上使用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>
答案 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