BIRT脚本报告不起作用:获取'无效的javascript表达式'例外

时间:2013-11-21 18:59:31

标签: java birt

我们正在运行嵌入在我们的Web应用程序中的Eclipse BIRT,它到目前为止工作得很好。我们大量使用Reports with Script-Datasources。有时我们使用Javascript,现在我们尝试直接用Java编写数据源提供程序。

我目前遇到阻碍问题,我的想法已经不多了,问题的根源可能是什么。

我得到了这个例外:

  

无效的javascript表达式:row [“Name”]   org.eclipse.birt.report.data.adapter.api.AdapterException:处理期间发生异常。有关详细信息,请参阅以下消息:   发生了BIRT异常。有关更多信息,请参阅下一个例   无效的javascript表达式:row [“Name”]       在org.eclipse.birt.report.data.adapter.impl.DataRequestSessionImpl.prepare(DataRequestSessionImpl.java:677)       在org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.doPrepareQuery(AbstractDataEngine.java:218)       在org.eclipse.birt.report.engine.data.dte.DteDataEngine.doPrepareQuery(DteDataEngine.java:273)       在org.eclipse.birt.report.engine.data.dte.AbstractDataEngine.prepare(AbstractDataEngine.java:183)       在org.eclipse.birt.report.engine.executor.ReportExecutor.execute(ReportExecutor.java:122)   在org.eclipse.birt.report.engine.internal.executor.wrap.WrappedReportExecutor.execute(WrappedReportExecutor.java:60)   ...

     

引起:org.eclipse.birt.core.exception.CoreException:无效的javascript表达式:row [“Name”]       在org.eclipse.birt.core.data.ExpressionParserUtility.compileColumnExpression(ExpressionParserUtility.java:85)       在org.eclipse.birt.core.data.ExpressionUtil.extractColumnExpressions(ExpressionUtil.java:282)       在org.eclipse.birt.data.engine.expression.ExpressionCompilerUtil.populateColumnList(ExpressionCompilerUtil.java:499)       at org.eclipse.birt.data.engine.expression.ExpressionCompilerUtil.extractColumnExpression(ExpressionCompilerUtil.java:116)       在org.eclipse.birt.data.engine.expression.ExpressionCompilerUtil.extractColumnExpression(ExpressionCompilerUtil.java:89)

奇怪的是:

  • 使用的报告定义(.rptdesign)适用于我们的webapp的先前版本中的所有设置/安装。
  • 它也适用于使用我们的webapp的当前版本的 SOME 计算机。
  • 适用于开发机器。 (使用eclipse / jetty设置)

但它在一台特定的机器上不起作用,使用此设置:

  • Windows XP 32位(虚拟)
  • Tomcat 6.0.30 / JRockit 1.6 JRE(堆1500 MB)
  • 解压缩部署,JAR文件中的所有类。
  • MySQL数据库

我怀疑Rhino JS引擎存在类路径问题。我检查了依赖关系...但它找不到根本原因。

这不是数据库内容。我使用相同的tomcat版本,jre版本和我的开发机器上的相同数据库内容(使用windows7 64bit)运行脚本化报告,并且运行正常。

非常感谢任何帮助/想法!

2 个答案:

答案 0 :(得分:2)

我终于找到了错误。

webapp-code并不完全相同。

带有BIRT问题的webapp代码在此jar中隐藏了另一个RHINO引擎(在另一个版本中): 的蜡染JS-1.7.jar

解决方案显然要注意,您的webapp jar中只有 ONE Rhino引擎。

答案 1 :(得分:0)

我通过使用最新BIRT运行时(版本4.8)附带的org.mozilla.javascript_1.7.5.v201504281450.jar而不是犀牛罐子解决了问题。

我从http://download.eclipse.org/birt/downloads/build.php的报告引擎下下载了更新。