我使用Eclipse的BIRT通过Java使用org.eclipse.birt.runtime
版本4.4.0
呈现报告。
尝试呈现报告时,BIRT正在返回:
org.eclipse.birt.data.engine.core.DataException: Invalid Javascript expression: dataSetRow["name"].
(以及dataSetRow
的{{1}}中的row
和.getErrors()
}的类似错误;
模板可以使用BIRT设计器并通过该应用程序进行渲染,但在尝试使用Java渲染时会中断。
我在整个网络上进行了广泛的搜索,很多人都建议应用程序中存在冲突的IRunAndRenderTask
。在我正在开发的应用程序中并非如此。唯一的javascript / rhino实例是通过BIRT导入的实例。
我还尝试了以下解决方案:
js.jar
并使用最新的BIRT设计器创建报告模板这个项目正在使用Maven,并且正在使用Java 6在Tomcat 7中运行。
数据库正在使用mysql。
如果需要,可以提供更多详细信息。
编辑:稍微解决了这个问题并找到了以下内容:
4.4.1
<data id="624">
<property name="dataSet">Dealership</property>
<list-property name="boundDataColumns">
<structure>
<property name="name">name</property>
<text-property name="displayName">name</text-property>
<expression name="expression" type="javascript">dataSetRow["name"]</expression>
<property name="dataType">string</property>
</structure>
</list-property>
<property name="resultSetColumn">name</property>
</data>
部分中的任何值都会引发无效的Javascript错误答案 0 :(得分:0)
我认为这可能是由maven存储库的birt pom.xml中的版本问题引起的。在这个版本中,我遇到了很多关于Maven的麻烦。
您应该尝试这样做:在项目中将BIRT maven依赖项设置为“已提供”,并从official Eclipse birt-runtime 4.4.0 package向您的应用添加“手动”所有jar。例如,在我这边我在Netbeans中创建了一个自定义的本地Maven依赖来处理这个并且它工作得很好。我希望它会有所帮助。
答案 1 :(得分:0)
发现这个问题出了什么问题。
我们正在使用Maven并决定检查是否存在冲突库。
我们找到了一个:Apache.FOP。
接下来,Birt在那之后工作得很好。