猿问

使用JavaScript语言编译JasperReport时发生异常

我正在尝试编译JasperDesign来以编程方式创建报告。由于我需要在Javascript中包含条件样式,因此我相应地设置了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有依赖性,因此我将其添加到了classpath中:


libraryDependencies += "org.mozilla" % "rhino" % "1.7.6"

问题是,每当我编译JasperDesign时,我都会遇到异常。即使我不包括Javascript条件样式,也会发生这种情况:


java.lang.NoSuchMethodError:org.mozilla.javascript.ContextFactory.enterContext()Lorg / mozilla / javascript / Context; 在net.sf.jasperreports.engine.engine.JasperCompile.net.sf.jasperreports.compilers.JavaScriptClassCompiler.compileUnits(JavaScriptClassCompiler.java:124)在net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:203) net.sf.jasperreports.engine.JasperCompileManager.compileToStream(JasperCompileManager.java:326)上的net.sf.jasperreports.engine.JasperCompileManager.compileReportToStream(JasperCompileManager.java:357)上的.compile(JasperCompileManager.java:357)


如果删除jasperDesign.setLanguage("javascript"),则没有编译错误。这里缺少什么?Nashorn和Rhino之间有冲突吗?


潇潇雨雨
浏览 277回答 1
1回答

白猪掌柜的

我的解决方案是将rhino 1.7.6 jar手动放入应用程序lib文件夹中。播放从那里加载没有问题。
随时随地看视频慕课网APP

相关分类

Java
我要回答