Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
EclipseBIRT脚本报告:';无效的javascript表达式:dataSetRow';例外_Java_Eclipse_Maven_Birt - Fatal编程技术网

EclipseBIRT脚本报告:';无效的javascript表达式:dataSetRow';例外

EclipseBIRT脚本报告:';无效的javascript表达式:dataSetRow';例外,java,eclipse,maven,birt,Java,Eclipse,Maven,Birt,我正在使用Eclipse的BIRT通过Java使用org.Eclipse.BIRT.runtimeversion4.4.0呈现报告 尝试呈现报告时,BIRT返回: org.eclipse.birt.data.engine.core.DataException:无效的Javascript表达式:dataSetRow[“name”]。 (对于IRunAndRenderTask的.getErrors()中的dataSetRow和行),也存在类似错误 使用BIRT设计器并通过该应用程序进行渲染,模板可以

我正在使用Eclipse的BIRT通过Java使用
org.Eclipse.BIRT.runtime
version
4.4.0
呈现报告

尝试呈现报告时,BIRT返回:

org.eclipse.birt.data.engine.core.DataException:无效的Javascript表达式:dataSetRow[“name”]。
(对于
IRunAndRenderTask
.getErrors()
中的
dataSetRow
),也存在类似错误

使用BIRT设计器并通过该应用程序进行渲染,模板可以正常工作,但在尝试使用Java进行渲染时,模板会中断

我在网络上进行了广泛的搜索,许多人建议应用程序中存在冲突的
js.jar
。我正在开发的应用程序并非如此。唯一的javascript/rhino实例是那些通过BIRT导入的实例

我还尝试了以下解决方案:

  • 排除捆绑的javascript并从Mozilla导入最新的Rhino/javascript
  • 将BIRT更新为
    4.4.1
    ,并使用最新的BIRT设计器创建报告模板
  • 将报告模板降级为仅显示DB返回的一个值(在本例中为经销商的“名称”)
该项目使用Maven,并在Tomcat7中运行——使用Java6

数据库正在使用mysql

如有要求,可提供更多详细信息


编辑:对这个问题进行了一点修改,发现了以下问题:

  • 不影响数据库的基本报告呈现良好的javascript表达式
  • 一旦我试图从查询中获取数据集,就会抛出无效的Javascript表达式,例如,在模板的这一部分:
    
    经销权
    名称
    名称
    dataSetRow[“名称”]
    一串
    名称
    
    • 上述
      datasetRow
      部分中的任何值都会抛出无效的Javascript错误

我认为这可能是由maven存储库的birt pom.xml中的版本问题引起的。在这个版本中,Maven给我带来了很多麻烦


您应该尝试这样做:在您的项目中将BIRT-maven依赖项设置为“provided”,并从中“手动”将所有jar添加到您的应用程序中。例如,在我这方面,我在Netbeans中创建了一个自定义的本地Maven依赖项来处理这个问题,它工作得非常好。我希望这会有所帮助。

找出了这个问题的症结所在

我们正在使用Maven,并决定检查是否存在冲突库

我们找到了一个:Apache.FOP


拿出它,Birt在那之后工作得很好。

做一个非常简单的报告工作(即只需要一个标题和一个简单的动态文本,如“Hello”+“world”,而不使用数据库)?您是否尝试在java应用程序中应用两个单独的“运行”和“渲染”任务(这可能是推荐的方法)?只尝试了以下内容:添加了以下行:
“Hello”+“World”+params[“testparam”]
,渲染效果良好。我没有把它分成
run
render
,现在我只做:
task.run()
task.close()而且似乎做得很好。我将尝试运行,然后渲染。事实上,它在没有DB的情况下工作,这让我觉得驱动程序出了问题或者其他什么。。。不确定-我已经研究过添加驱动程序(mysql),但找不到合适的maven依赖项。编辑:mysql驱动程序似乎可以工作,因为它实际上使用正确的查询访问了我的数据库。我以前在使用DB2而不是mysql的类似项目中使用过它,它可以工作。。。所以我不确定这是否是pom的问题。遇到这些问题时,您是否使用mysql?我仍然会尝试一下你的解决方案,我会让你知道结果。不,这些Maven问题不是MySql特有的,所以这可能不是同一个问题。如果它在您的DB2案例中起作用,那么就不值得尝试我的建议。如何从报表中访问MySQL?JDBC数据源、连接池、用于查询生成器的JDBC等等。。。?此数据源是直接在报表中声明的,还是从.rpt库链接的?java应用程序运行环境的JVM版本是什么?报告使用mysql JDBC驱动程序-它直接在报告中声明。使用Java1.6。