JasperReport 在 WildFly 中找不到符号 JREvaluator,无需服务器即可工作

问题描述 投票:0回答:3

最近我一直在和 Jasper 一起制作报告。我创建了一个简单的程序来测试它,当通过 IDE 运行它时,它工作得很好。

然后我将(非常短的)类移至 WildFly 服务器应用程序,尽管具有完全相同的代码和库生成失败,并显示

cannot find symbol
。它找不到的符号是
JREvaluator
JRFillVariable
以及诸如
net.sf.jasperreports.engine

之类的包

到目前为止我已经确认:

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

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

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

  • 清洁和构建

  • -Djava.awt.headless=true
    添加到虚拟机选项 - 这并没有改变任何东西

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

  • 添加

    commons-beanutils-1.9.4.jar
    commons-digester-2.1.jar
    commons-collections4-4.4.jar
    commons-loggin-1.2.jar
    - 没有任何更改

  • 添加

    jasper-compiler-jdt-5.5.23.jar
    - 这会导致不同的错误,即
    NoSuchMethodError
    代表
    org.eclipse.jdt.internal.compiler.ICompilerRequestor
    和其他一些错误。然而,这个库应该不是必需的,因为根据我的理解,
    jasperreport-6.13.0.jar
    已经包含它的编译器,并且很长一段时间以来不需要单独的编译器库。

尚未尝试过的:

更新:在查看this答案并应用建议后,缺少的课程有所不同。这表明依赖项inside

jasperreport.jar
未正确加载

java jboss jasper-reports wildfly
3个回答
0
投票

我已经弄清楚了

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

这是库列表,基于我添加的 jasperreport.jar 中的

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

  • 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

0
投票

我遇到了同样的问题,我的项目执行(通过 jasper 库)Jasper 报告。

在我的 IDE 和 JBoss 服务器上没有问题,但是当我通过 WildFly 部署时出现问题。

我只需要将 jasper-compiler-jdt.jar 添加到项目库中,最后就可以在 WildFly 上运行了。


0
投票

我遇到了同样的问题,使用 Spring Boot 在本地一切正常,但在 Docker 中运行时失败。添加以下依赖项解决了问题: 实现 'net.sf.jasperreports:jasperreports-jdt:7.0.1' 实现 'org.eclipse.jdt:ecj:3.21.0'

© www.soinside.com 2019 - 2024. All rights reserved.