JasperReports NoClassDefFoundError exception on net.sf.jasperreports.engine.util.JRStyledTextParser

2022-09-01 14:24:50

当尝试在 WebLogic 11g 上导出时,它会引发 NoClassDefFound 异常。我检查了应用程序WAR和jasperreports-3.7.4.jar包含在WEB-INF / lib文件夹中。错误是什么?

堆栈跟踪

java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/util/JRStyledTextParser at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:181) at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:76) at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:86) at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:56) at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142) at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:78) at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624) at org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsViews.fillReport(AbstractJasperReportsView.java:676) at


答案 1

最后,我让它工作了。我检测到根异常,它是在NoClassDefFoundError:net/sf/jasperreports/engine/util/JRStyledTextParser之前抛出的:

java.lang.NoClassDefFoundError: sun/awt/X11GraphicsEnvironment

Unix 和 Linux 上的 Sun AWT 类依赖于 X Window 系统。使用这些类时,它们希望加载 X 客户端库并能够与 X 显示服务器通信。如果您的客户端有GUI,这是有道理的;不幸的是,即使您的客户端使用AWT但没有GUI(这是我的情况,从Web应用程序生成报告),这也是必需的。

绕过此情况的方法是在系统启动时设置系统属性。java.awt.headless=true


答案 2

我遇到了同样的问题,我们通过安装xorg字体包和ttf字体解决了这个问题。


推荐