【问题标题】:consume JSON in a BIRT Report from REST API在来自 REST API 的 BIRT 报告中使用 JSON
【发布时间】:2013-10-29 09:15:17
【问题描述】:

我正在尝试设计一个从 RESTful 资源获取 JSON 数据的报告。据我本机理解,此选项不可用,我必须依赖外部类。我遇到了this suggestion。我构建了必要的 jars(基本和依赖项),创建了一个脚本数据源,修改了打开的脚本,然后是一个带有 fetch 脚本的数据集,但无论如何我都无法让它工作。我一直收到以下错误:

...................
A BIRT exception occurred. See next exception for more information.
Error evaluating Javascript expression. Script engine error: TypeError: [JavaPackage com.actuate.json.JSONParser] is not a function, it is object. (/report/data-sources/script-data-source[@id="83"]/method[@name="open"]#5)
Script source: /report/data-sources/script-data-source[@id="83"]/method[@name="open"], line: 0, text:
__bm_OPEN(). (Element ID:1)
at org.eclipse.birt.report.engine.script.internal.DtEScriptExecutor.handleJS(DtEScriptExecutor.java:99
................................... 

(我包含了消息中最重要的部分)

  1. 那么造成这种错误的原因是什么?没有正确加载类? 我试图从属性框加载资源 我试图在类路径中加载外部 jar 我复制了里面的scriptlib文件夹 没有任何效果。

  2. 是否需要在打开的脚本中显式导入目标类的所有依赖项(尽管 java 源代码已经这样做了)?

  3. 还有其他方法可以实现我的目标吗? (我现在正在敲我的头几天.....)

提前致谢

【问题讨论】:

    标签: rest report datasource birt


    【解决方案1】:

    如果 JSON 数据由 Java 后端使用 JAXB 提供,您可以轻松提供 XML 响应。在 BIRT 中使用指向您的 URL 的 XML 源。现在,助手将允许您定义 xpath 表达式以将 XML 流转换为数据集。在此基础上,您可以构建您的报告。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多