【问题标题】:Error compiling JasperReport 4.1.3 created from iReport 4.1.3 with Groovy 1.8.1使用 Groovy 1.8.1 编译从 iReport 4.1.3 创建的 JasperReport 4.1.3 时出错
【发布时间】:2011-11-05 00:30:31
【问题描述】:

我在 Windows 7 64 位上,使用 JDK 1.6.0_29、groovy 1.8.1 和 JasperReports/iReport 4.1.3。

我的 CLASSPATH 中有来自 JasperReports 发行版的以下 jar:

commons-beanutils-1.8.0.jar、commons-collections-2.1.1.jar、commons-digester-1.7.jar、commons-logging-1.0.4.jar、jasperreports-4.1.3.jar、poi -3.7-20101029.jar

我还尝试在 ${JASPER_HOME}/lib 发行版中添加所有 jar,以防我遗漏了一些重要的 jar。

jasper 报告将由 groovy 脚本生成。我用 iReport 创建了一个非常简单的报告,标题中只包含一些静态文本。我可以在 iReport 中编译和查看报告。

当我尝试从脚本编译报告时:

def jasperReport = JasperCompileManager.compileReport("filename")

我收到以下错误:

Caught: java.lang.AbstractMethodError
java.lang.AbstractMethodError
    at net.sf.jasperreports.compilers.JRGroovyCompiler.compileUnits(JRGroovyCompiler.java:96)
    at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:188)
    at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:212)
    at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:145)
    at net.sf.jasperreports.engine.JasperCompileManager$compileReport.call(Unknown Source)
    at wis_validate_environment.run(wis_validate_environment.groovy:58)

JasperReports 使用的 groovy(来自 stacktrace 的JRGroovyCompiler?)和我用来编译报告的 groovy 之间是否可能存在冲突?

【问题讨论】:

  • 也许你应该尝试另一个 groovy 版本。 JR 4.1.3 正在使用 groovy 1.7.5
  • 来自 pom.xml 的依赖:org.codehaus.groovygroovy-all1.7.5编译 真可选> 依赖>
  • 我会尝试看看这是否有效。这将是一个问题,因为我无法在我的服务器环境中安装另一个版本的 groovy。谢谢。
  • 我在更改为 groovy 1.7.5 后得到了相同的行为。无论如何都是好主意。

标签: groovy jasper-reports


【解决方案1】:

为了解决此问题,我必须更改一些内容。

使用报告向导和默认设置创建报告会在 jasperReport 标记中创建 language="groovy" 参数。当我删除语言参数时,我不再得到上面提到的 AbstractMethodError。

我还需要在我的类路径中添加 jdt-compiler-3.1.1.jar。

【讨论】:

  • 很好的解决方案。顺便说一句,“删除语言参数”与“将语言从'Groovy'更改为'Java'”是一回事。
【解决方案2】:

我发现问题在这里得到了解释:

http://www.mail-archive.com/user@ofbiz.apache.org/msg23404.html

我们项目使用的依赖库之一的版本似乎与 groovy 冲突。

简而言之,使用 groovy-all.jar 或确保您的依赖项与您正在使用的 groovy 版本匹配。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 2016-01-18
    • 2022-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    相关资源
    最近更新 更多