从 Java Reporting Component 迁移到 RAS

如果应用程序需要额外的可伸缩性以及修改报表的能力,您可以将报表服务器升级为 RAS,并只需对现有代码稍做更改即可快速迁移应用程序。RAS 提供了 Java Reporting Component 未提供的额外的可伸缩性和报表修改功能。

要迁移 Web 应用程序以使用 RAS,必须首先获得并安装一份 RAS。正确安装并配置了 RAS 后,您将能够迁移 Web 应用程序。

从 Java Reporting Component 到 RAS 的迁移路径因应用程序是否使用 ReportClientDocument 类而异。

迁移使用 ReportClientDocument 类的应用程序

如果 Web 应用程序使用 ReportClientDocument 类来获取报表源,则必须更改 JSP 导入语句,以便使用 RAS 命名空间(而不是 Java Reporting Component 命名空间)。

例如,将 com.crystaldecisions.reports.sdk.* 更改为 com.crystaldecisions.sdk.occa.report.application.*

还需要指定 RAS 服务器的位置:

ReportClientDocument clientDoc = new ReportClientDocument();

clientDoc.setReportAppServer("SERVERNAME");

迁移不使用 ReportClientDocument 类的应用程序

注意:    建议您使用 ReportClientDocument 类来查看或导出报表。

如果 Web 应用程序不使用 ReportClientDocument 对象,则必须更改代码,以便使用相应的 RAS 类来代替 Java Reporting Component 类。执行此操作的代码因您使用的是受管理的还是不受管理的 RAS 而异。

下面是原始 Java Reporting Component 代码:

IReportSourceFactory2 rptSrcFactory = new JPEReportSourceFactory();

Object reportSource = rptSrcFactory.createReportSource(report, request.getLocale());

受管理的环境

在受管理的环境中,删除导入 com.crystaldecisions.reports.reportengineinterface.JPEReportSourceFactory 的导入语句。还必须将原始 Java Reporting Component 代码更改为以下形式:

IReportSourceFactory2 rptSrcFactory = (IReportSourceFactory2)enterpriseSession.getService("RASReportFactory");

Object reportSource = rptSrcFactory.createReportSource(report, request.getLocale());

注意:    上面的代码假设您已创建了有效的 enterpriseSession 对象。

不受管理的环境

在不受管理的环境中,删除导入 com.crystaldecisions.reports.reportengineinterface.JPEReportSourceFactory 的导入语句。然后,您必须添加一个导入语句,以便导入 com.crystaldecisions.sdk.occa.report.application.reportsourcefactory.RasReportSourceFactory。此外,必须将原始 Java Reporting Component 代码更改为以下形式:

IReportSourceFactory2 rptSrcFactory = new RasReportSourceFactory();

Object reportSource = rptSrcFactory.createReportSource(report, request.getLocale());

在不受管理的环境中,还必须指定 RAS 服务器的位置。有关指定 RAS 的位置的详细信息,请参阅《报表应用程序服务器 Java SDK 指南》


Business Objects
http://www.china.businessobjects.com

支持服务
http://www.china.businessobjects.com