我想分享我的经验与一个或多或少常见的错误与JasperReports。
在执行JasperReports生成PDF报告时,出现了一个异常:
java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser
net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:108)
net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:69)
net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:57)
net.sf.jasperreports.engine.fill.JRFiller.createBandReportFiller(JRFiller.java:200)
net.sf.jasperreports.engine.fill.JRFiller.createReportFiller(JRFiller.java:215)
net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:115)
net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:667)
net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:983)
我的环境:
- 内核2.6.32- 504.e16.x86_64内核2.6.32
- Java 1.7_79(Sun公司)
- Jasper报告6.2.2
- ApacheTomcat 7.0.68
同样的问题:
- java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser
- http://community.jaspersoft.com/questions/536539/noclassdeffounderror-jrstyledtextparser-initialization-failure
我尝试了这些解决方案,但没有成功。
3条答案
按热度按时间mm9b1k5b1#
因此,这里有一些检查要做:
VMWare知识库:https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2010240.
您的环境应该安装X11和/或图形包(字体等),或者您必须使用
-Djava.awt.headless=true
选项运行Java。对于headless,您的库需要包含字体(默认的JasperReport字体是Pictonic.ttf)Java创建临时文件(使用java.io.tmp选项,如果您已指定它)。因此,请检查您的临时文件夹是否已满,以及Java PID的用户/组是否可写。如果不是这样,则会抛出异常,但会捕获异常并且不可见...
nhaq1z212#
我在我的开发机器上遇到过同样的问题。基本上是由于应用服务器(Apache tomcat)的问题而发生的。
基本上,我不小心删除了服务器根目录中的“temp”文件夹,所以jasper无法编译报告并继续生成报告。
此外,临时文件夹空间可能会对报告生成过程造成巨大损害。
因此,请检查服务器中的以下项目
1.服务器空间
hujrc8aj3#
我在几个小时后找到了解决方案。如果你使用bitnami docker compose文件,你必须卷java文件夹。报告是用java 1.8_201版本运行的。所以你应该下载1.8_201并将其卷为你的docker compose。