我们正在运行嵌入在我们的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)
奇怪的是:
但它在一台特定的机器上不起作用,使用此设置:
我怀疑Rhino JS引擎存在类路径问题。我检查了依赖关系...但它找不到根本原因。
这不是数据库内容。我使用相同的tomcat版本,jre版本和我的开发机器上的相同数据库内容(使用windows7 64bit)运行脚本化报告,并且运行正常。
非常感谢任何帮助/想法!
答案 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的报告引擎下下载了更新。