【问题标题】:Birt scripted datasource Javascript code is not executingBirt 脚本数据源 Javascript 代码未执行
【发布时间】:2020-01-23 11:25:45
【问题描述】:

我正在尝试从 Birt 的脚本数据源选项中的 RESTful API 获取 json 响应。所以我指的是这个 Actuate 的教程 Actuate's tutorial for scripted datasource 和之前提出的这个问题 Stackoverflow question regarding Birt with RESTful API。所以我使用数据源和数据集对应的open() 和fetch() 方法来定义js 代码。但问题是即使我尝试使用简单的window.alert("test"); 进行调试,js 代码也根本不会执行。

它给出了这个例外:

org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor handleJS
WARNING: Fail to execute script in function __bm_OPEN(). Source:

和

ReferenceError: "window" is not defined. (/report/data-sources/script-data-source[@id="4"]/method[@name="open"]#5)
org.eclipse.birt.data.engine.core.DataException: Fail to execute script in function __bm_OPEN(). Source:

我应该将依赖项或 jar 添加到 scriptlib 文件夹吗?还是这是其他问题? 提前致谢。

编辑:

似乎警报功能不起作用,因为他们在服务器端脚本中使用了 Rhino。那么有什么方法可以调试脚本吗?

【问题讨论】:

    标签: javascript datasource birt


    【解决方案1】:

    不要将 BIRT 的 Javascript 与浏览器中的 Javascript 混淆!

    更令人困惑的是: 您可以在 BIRT 的不同阶段使用 Javascript,其中一些在浏览器中查看输出时可以工作...

    BIRT 使用 Javascript,但不知道 alert() 或 window 对象。 仅当脚本在浏览器中运行时才定义。

    大多数 BIRT 脚本在生成时发生 - 而不是在浏览器中(例如,将其与 node.js 进行比较)。

    如果要输出调试消息,请通过在脚本中调用 Java vom 来实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-05
      • 1970-01-01
      • 2012-12-09
      • 2011-04-03
      相关资源
      最近更新 更多