尝试在 WebLogic 11g 上导出时,会抛出 NoClassDefFound 异常。我检查了应用程序 WAR,jasperreports-3.7.4.jar 包含在 WEB-INF/lib 文件夹中。错误是什么?
堆栈跟踪
java.lang.NoClassDefFoundError:net/sf/jasperreports/engine/util/JRStyledTextParser 位于 net.sf.jasperreports.engine.fill.JRBaseFiller。(JRBaseFiller.java:181)位于 net.sf.jasperreports.engine.fill.JRVerticalFiller。 (JRVerticalFiller.java:76)在 net.sf.jasperreports.engine.fill.JRVerticalFiller。(JRVerticalFiller.java:86)在 net.sf.jasperreports.engine.fill.JRVerticalFiller。(JRVerticalFiller.java:56)在 net。 sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:142) 在 net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:78) 在 net.sf.jasperreports.engine.JasperFillManager。 fillReport(JasperFillManager.java:624)在 org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView.fillReport(AbstractJasperReportsView.java:676)在
原文由 Esteve Camps 发布,翻译遵循 CC BY-SA 4.0 许可协议
最后,我让它工作了。我检测到在 NoClassDefFoundError:net/sf/jasperreports/engine/util/JRStyledTextParser 之前抛出的根异常:
Unix 和 Linux 上的 Sun AWT 类依赖于 X 窗口系统。当您使用这些类时,它们期望加载 X 客户端库并能够与 X 显示服务器对话。如果您的客户有 GUI,这是有意义的;不幸的是,即使您的客户使用 AWT 但没有 GUI(我的情况是从 Web 应用程序生成报告),它也是必需的
绕过这个的方法是在系统启动时设置系统属性
java.awt.headless=true
。