使用 javascript 语言编译 JasperReport 时出现异常
Exception when compiling JasperReport with javascript language
我正在尝试编译 JasperDesign 以编程方式创建报告。由于我需要在 Java 脚本中包含条件样式,因此我相应地设置了 JasperDesign 语言:
val jasperDesign = new JasperDesign
jasperDesign.setLanguage("javascript")
请注意,我在 Java 8 上使用 Scala 2.11,在 Play for Scala 2.5
上使用 运行
由于 JasperReports 6.4.3(我正在使用的版本)依赖于 rhino 1.7.6,我将其添加到类路径中:
libraryDependencies += "org.mozilla" % "rhino" % "1.7.6"
问题是每当我编译 JasperDesign 时都会出现异常。即使我不包含 Javascript 条件样式也会发生这种情况:
java.lang.NoSuchMethodError:
org.mozilla.javascript.ContextFactory.enterContext()Lorg/mozilla/javascript/Context;
at net.sf.jasperreports.compilers.JavaScriptClassCompiler.compileUnits(JavaScriptClassCompiler.java:124)
at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:203)
at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:357)
at net.sf.jasperreports.engine.JasperCompileManager.compileToStream(JasperCompileManager.java:326)
at net.sf.jasperreports.engine.JasperCompileManager.compileReportToStream(JasperCompileManager.java:599)
如果我删除 jasperDesign.setLanguage("javascript")
我没有编译错误。这里缺少什么? Nashorn 和 Rhino 有冲突吗?
我的解决方案是将 rhino 1.7.6 jar 手动放入应用程序 lib 文件夹中。播放从那里加载它没有问题。
我正在尝试编译 JasperDesign 以编程方式创建报告。由于我需要在 Java 脚本中包含条件样式,因此我相应地设置了 JasperDesign 语言:
val jasperDesign = new JasperDesign
jasperDesign.setLanguage("javascript")
请注意,我在 Java 8 上使用 Scala 2.11,在 Play for Scala 2.5
上使用 运行由于 JasperReports 6.4.3(我正在使用的版本)依赖于 rhino 1.7.6,我将其添加到类路径中:
libraryDependencies += "org.mozilla" % "rhino" % "1.7.6"
问题是每当我编译 JasperDesign 时都会出现异常。即使我不包含 Javascript 条件样式也会发生这种情况:
java.lang.NoSuchMethodError: org.mozilla.javascript.ContextFactory.enterContext()Lorg/mozilla/javascript/Context; at net.sf.jasperreports.compilers.JavaScriptClassCompiler.compileUnits(JavaScriptClassCompiler.java:124) at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:203) at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:357) at net.sf.jasperreports.engine.JasperCompileManager.compileToStream(JasperCompileManager.java:326) at net.sf.jasperreports.engine.JasperCompileManager.compileReportToStream(JasperCompileManager.java:599)
如果我删除 jasperDesign.setLanguage("javascript")
我没有编译错误。这里缺少什么? Nashorn 和 Rhino 有冲突吗?
我的解决方案是将 rhino 1.7.6 jar 手动放入应用程序 lib 文件夹中。播放从那里加载它没有问题。