2

我正在尝试设计一个从 RESTful 资源获取 JSON 数据的报告。据我本机理解,此选项不可用,我必须依赖外部类。我遇到了这个建议。我构建了必要的 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. 还有其他方法可以实现我的目标吗?(我现在正在敲头几天......)

提前致谢

4

1 回答 1

0

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

于 2014-10-14T11:30:46.373 回答