首页 > 解决方案 > JasperReport 在 WildFly 中找不到符号 JREvaluator,无需服务器即可工作

问题描述

最近我一直在用 Jasper 进行报告生成。我创建了一个简单的程序来测试它,当通过 IDE 运行它时它运行良好。

然后我将(非常短的)类移动到 WildFly 服务器应用程序,尽管代码和库生成完全相同,但cannot find symbol. 那些它找不到的符号是JREvaluatorJRFillVariable以及包如net.sf.jasperreports.engine

到目前为止,我已经确认:

在我看来,问题不在于库未加载或缺少类(因为在测试环境中它可以工作),而是阻止 JBoss 类加载器加载这些类

尝试(和失败)的解决方案

未尝试的内容:

更新:查看答案并应用建议后,缺失的课程有所不同。这表明内部 jasperreport.jar的依赖项没有正确加载

标签: javajbossjasper-reportswildfly

解决方案


我想通了

由于某种原因,jasperreport.jar 使用的服务器项目库没有加载,但在测试项目中它们是(可能是由于 WildFly,可能是由于 IntelliJ 和 NetBeans 之间的差异)

这是库列表,基于pom.xml我添加的 jasperreport.jar 中的文件。有些可能不是必需的,并且列表可能并不详尽(一旦报告开始生成,我基本上就停止添加库)但是如果其他人遇到这个问题,它就足够了:

  • commons-beanutils-1.9.4.jar
  • itext-2.1.7.jar
  • poi-ooxml-4.1.1.jar
  • commons-collections4-4.4.jar
  • jcommon-1.0.23.jar
  • xalan-2.7.2.jar
  • commons-digester-2.1.jar
  • jfreechart-1.0.19.jar
  • xmpcore-5.1.3.jar
  • commons-logging-1.2.jar
  • poi-4.1.1.jar

推荐阅读