JasperReport在WildFly中找不到符号JREvaluator,可以在没有服务器的情况下运行

问题描述

最近,我一直在与Jasper合作进行报告生成。我已经创建了一个简单的程序来对其进行测试,并且在通过IDE运行它时效果很好。

然后,我将(很短的)类移至WildFly服务器应用程序,尽管具有完全相同的代码,并且库生成因cannot find symbol而失败。它找不到的那些符号是JREvaluatorJRFillVariable以及诸如net.sf.jasperreports.engine

之类的软件包

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

  • 项目构建(意味着这些类对于javac可见,但对jvm不可见)
  • jasperreports-6.13.0.jar被添加到war(与其他库(如/WEB-INF/libgson
  • 一起存在于hibernate文件夹中)
  • jasperreports-6.13.0.jar包含缺少的类

在我看来,问题不在于库没有被加载或缺少类(因为在测试环境中它可以工作),而是某种原因阻止了JBoss类加载器加载那些类

尝试(失败)的解决方案

  • 清洁并构建

  • 向虚拟机选项添加-Djava.awt.headless=true-这并没有改变

  • 在虚拟机选项中添加-Djava.awt.headless=false-并没有改变任何事情,但是曾经在NullPointerException库中导致jasperreport。对于测试程序-在两种情况下均有效

  • 添加commons-beanutils-1.9.4.jarcommons-digester-2.1.jarcommons-collections4-4.4.jarcommons-loggin-1.2.jar-无需更改

  • 添加jasper-compiler-jdt-5.5.23.jar –导致了另一个错误,即NoSuchMethodError的{​​{1}}和其他错误。但是,该库不是必需的,因为-据我了解-org.eclipse.jdt.internal.compiler.ICompilerRequestor已经包含它的编译器,而且很长一段时间以来不需要单独的编译器库。

尚未尝试的操作:

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)