集成 BIRT 查看器与 Java 和 Java EE Web 应用程序(1)
 
- UID
- 1066743
|

集成 BIRT 查看器与 Java 和 Java EE Web 应用程序(1)
检查问题意大利一家著名的热电动力公司需要一个自定义的 Web 应用程序,利用该应用程序来自动化其在各个地方的电厂的生产数据和预算数据的收集和归档。生成基于提交到后台的数据的报告是该应用程序的一个部分。Business Intelligence and Reporting Tools (BIRT) 被建议用作生成报告的技术。对于这个自定义的 Web 应用程序,我们决定使用 Struts2 框架。
报告是使用 BIRT 设计程序开发的。一个最简单的选择是使用 BIRT 运行时(org.eclipse.birt.runtime 3.7.1 版)API 来呈现报告。该选择需要使用 Maven(通过使用 Maven 对 BIRT 运行时的 JAR 文件的依赖关系)集成 BIRT 运行时与自定义的 Web 应用程序。集成 BIRT 运行时后,报告可通过使用 BIRT 运行时 API 类和接口编写的自定义代码来呈现。
除了呈现报告之外,客户还需要将报告导出为不同格式,比如 PDF 或 Excel。BIRT 运行时下载文件包含一个示例 BIRT 报告查看器 Web 应用程序,它通过其内置的 servlet 使用各种格式呈现报告。除了以各种格式呈现报告之外,这个示例查看器还提供了其他有用的特性:
- 按页面或从一个目录导航一个大型报告
- 运行和生成 HTML 或 PDF 等格式的报告
- 以 CSV、TSV 和 PSV 等格式导出报告数据。
- 在本地或在服务器上打印报告
- 使用其他参数测试并重新运行报告
考虑所有这些有用的特性,我们最喜欢重用示例 BIRT 查看器应用程序,而不是编写自定义代码来使用 BIRT 运行时 API 查看和下载报告。这种重用节省了生成一个自定义 BIRT 报告查看器的时间和工作。
考虑可能的解决方案示例 BIRT 查看器(包含在 BIRT 运行时下载中)本身是一个 Web 应用程序,它由 BIRT 引擎和 Java API 组成。可通过以下方式将它用于自定义 Web 应用程序:
- 为 BIRT 查看器维护一个额外的 Web 应用程序,自定义 Web 应用程序可以调用这个额外的应用程序来呈现报告。在这种情况下,只要用户需要查看一个报告,这个自定义的 Web 应用程序就会调用 BIRT 查看器 Web 应用程序(在服务器上单独运行)。自定义应用程序传递要呈现的报告名称,以及呈现报告所需的其他参数。此方法假设报告是在一个 BIRT 查看器 Web 应用程序中维护的,而不是在自定义 Web 应用程序中维护的。
- 将示例 BIRT 查看器应用程序集成到自定义 Web 应用程序中,仅维护一个应用程序,这个应用程序就会拥有核心特性,而且还要负责呈现报告。
找到最喜爱的解决方案 中的第一个解决方案需要创建和维护多个应用程序:
- 自定义 Web 应用程序
- 一个补充性 Web 应用程序(BIRT 查看器 Web 应用程序),它的主要目的是打印一些报告
客户不会接受在其服务器上维护以下两个 Web 应用程序的提议:自定义 Web 应用程序和另一个仅用于呈现报告的应用程序。所以,我们仅剩下集成示例 BIRT 查看器应用程序与自定义 Web 应用程序,以便仅在服务器上维护单个 Web 应用程序了。
集成 BIRT 查看器与一个自定义 Java Platform, Enterprise Edition Web 应用程序Maven 类型的项目要执行的步骤- 将 中依赖关系添加到 pom.xml 中清单 1:Maven 依赖关系 - BIRT 运行时
1
2
3
4
5
6
7
8
9
10
| <dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.birt.runtime</artifactId>
<version>4.2.0</version>
</dependency>
<dependency>
<groupId>axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
|
- 将 viewservlets.jar 文件(参见 中的 programfiles.zip)保存到本地文件夹结构中。
- 进入 maven 项目文件夹内部(包含 pom.xml)。运行以下命令(假设已配置 Maven)。
1
2
3
| mvn install:install-file -Dfile=[location_where_you_saved]\viewservlets.jar
-DgroupId=org.eclipse.birt.example -DartifactId=viewer-servlet -Dversion=4.2.0
-Dpackaging=jar
|
备注: 如果尚未配置 Maven,那么可以从 [Maven 下载到的位置] \apache-maven-3.0.4\bin 运行该命令
- 将 中的代码添加到 pom.xml 中: 清单 2. Maven 依赖关系 - BIRT 示例
1
2
3
4
5
| <dependency>
<groupId>org.eclipse.birt.example</groupId>
<artifactId>viewer-servlet</artifactId>
<version>4.2.0</version>
</dependency>
|
非 Maven 类型的项目要执行的步骤- 从 BIRT 网站下载 。
- 将以下 JAR 文件从 [where_you_extracted birt-runtime-4_2_0.zip]/WebViewerExample/WEB-INF/lib 添加到 WEB-INF/lib 文件夹中:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
| axis-ant.jar
axis.jar
com.ibm.icu_4.4.2.v20110823.jar
com.lowagie.text_2.1.7.v201004222200.jar
commons-cli-1.0.jar
commons-discovery-0.2.jar
derby.jar
flute.jar
javax.wsdl_1.5.1.v201012040544.jar
javax.xml.stream_1.0.1.v201004272200.jar
jaxrpc.jar
js.jar
org.apache.batik.bridge_1.6.0.v201011041432.jar
org.apache.batik.css_1.6.0.v201011041432.jar
org.apache.batik.dom.svg_1.6.0.v201011041432.jar
org.apache.batik.dom_1.6.0.v201011041432.jar
org.apache.batik.ext.awt_1.6.0.v201011041432.jar
org.apache.batik.parser_1.6.0.v201011041432.jar
org.apache.batik.pdf_1.6.0.v201105071520.jar
org.apache.batik.svggen_1.6.0.v201011041432.jar
org.apache.batik.transcoder_1.6.0.v201011041432.jar
org.apache.batik.util.gui_1.6.0.v201011041432.jar
org.apache.batik.util_1.6.0.v201011041432.jar
org.apache.batik.xml_1.6.0.v201011041432.jar
org.apache.commons.codec_1.3.0.v201101211617.jar
org.apache.commons.logging_1.0.4.v201101211617.jar
org.apache.xerces_2.9.0.v201101211617.jar
org.apache.xml.resolver_1.2.0.v201005080400.jar
org.apache.xml.serializer_2.7.1.v201005080400.jar
org.eclipse.birt.runtime_4.2.0.v20120613-1143.jar
org.eclipse.core.contenttype_3.4.200.v20120523-2004.jar
org.eclipse.core.expressions_3.4.400.v20120523-2004.jar
org.eclipse.core.filesystem_1.3.200.v20120522-2012.jar
org.eclipse.core.jobs_3.5.200.v20120521-2346.jar
org.eclipse.core.resources_3.8.0.v20120522-2034.jar
org.eclipse.core.runtime_3.8.0.v20120521-2346.jar
org.eclipse.datatools.connectivity.apache.derby.dbdefinition_1.0.2.v201107221459.jar
org.eclipse.datatools.connectivity.apache.derby_1.0.102.v201107221459.jar
org.eclipse.datatools.connectivity.console.profile_1.0.10.v201109250955.jar
org.eclipse.datatools.connectivity.db.generic_1.0.1.v201107221459.jar
org.eclipse.datatools.connectivity.dbdefinition.genericJDBC_1.0.1.v201107221459.jar
org.eclipse.datatools.connectivity.oda.consumer_3.2.5.v201109151100.jar
org.eclipse.datatools.connectivity.oda.design_3.3.5.v201204241156.jar
org.eclipse.datatools.connectivity.oda.flatfile_3.1.2.v201206121559.jar
org.eclipse.datatools.connectivity.oda.profile_3.2.7.v201203291105.jar
org.eclipse.datatools.connectivity.oda_3.3.3.v201110130935.jar
org.eclipse.datatools.connectivity.sqm.core_1.2.5.v201205240353.jar
org.eclipse.datatools.connectivity_1.2.5.v201206130431.jar
org.eclipse.datatools.enablement.hsqldb.dbdefinition_1.0.0.v201107221502.jar
org.eclipse.datatools.enablement.hsqldb_1.0.0.v201107221502.jar
org.eclipse.datatools.enablement.ibm.db2.luw.dbdefinition_1.0.4.v201107221502.jar
org.eclipse.datatools.enablement.ibm.db2.luw_1.0.2.v201107221502.jar
org.eclipse.datatools.enablement.ibm.informix.dbdefinition_1.0.4.v201107221502.jar
org.eclipse.datatools.enablement.ibm.informix_1.0.1.v201107221502.jar
org.eclipse.datatools.enablement.msft.sqlserver.dbdefinition_1.0.1.v201201240505.jar
org.eclipse.datatools.enablement.msft.sqlserver_1.0.1.v201107221504.jar
org.eclipse.datatools.enablement.mysql.dbdefinition_1.0.4.v201109022331.jar
org.eclipse.datatools.enablement.mysql_1.0.3.v201205252211.jar
org.eclipse.datatools.enablement.oda.ws_1.2.4.v201203221631.jar
org.eclipse.datatools.enablement.oda.xml_1.2.3.v201112061438.jar
org.eclipse.datatools.enablement.oracle.dbdefinition_1.0.103.v201206010214.jar
org.eclipse.datatools.enablement.oracle_1.0.0.v201107221506.jar
org.eclipse.datatools.enablement.postgresql.dbdefinition_1.0.2.v201110070445.jar
org.eclipse.datatools.enablement.postgresql_1.1.1.v201205252207.jar
org.eclipse.datatools.modelbase.dbdefinition_1.0.2.v201107221519.jar
org.eclipse.datatools.modelbase.derby_1.0.0.v201107221519.jar
org.eclipse.datatools.modelbase.sql.query_1.1.3.v201206060918.jar
org.eclipse.datatools.modelbase.sql_1.0.5.v201110151330.jar
org.eclipse.emf.common_2.8.0.v20120606-0717.jar
org.eclipse.emf.ecore.change_2.8.0.v20120606-0717.jar
org.eclipse.emf.ecore.xmi_2.8.0.v20120606-0717.jar
org.eclipse.emf.ecore_2.8.0.v20120606-0717.jar
org.eclipse.emf_2.6.0.v20120608-0554.jar
org.eclipse.equinox.app_1.3.100.v20120522-1841.jar
org.eclipse.equinox.common_3.6.100.v20120522-1841.jar
org.eclipse.equinox.preferences_3.5.0.v20120522-1841.jar
org.eclipse.equinox.registry_3.5.200.v20120522-1841.jar
org.eclipse.osgi.services_3.3.100.v20120522-1822.jar
org.eclipse.osgi_3.8.0.v20120529-1548.jar
org.eclipse.update.configurator_3.3.200.v20120523-1752.jar
org.w3c.css.sac_1.3.0.v200805290154.jar
org.w3c.dom.smil_1.0.0.v200806040011.jar
org.w3c.dom.svg_1.1.0.v201011041433.jar
saaj.jar
Tidy.jar
viewservlets.jar
|
|
|
|
|
|
|