下面就通过电子表格FineReport来简单介绍一下报表部署流程。
工具/原料
电子表格FineReport7.1.1
大小:148.2M适用平台:windows/linux
报表应用目录结构
1、web应用的目录结构报表部署分为两种,一是报表作为一个独立的应用独立部署;另一个是集成到现有应用即嵌入式部署。不管哪种部署方式,他们的目录结构都是类似的。如下图我们对未包含报表的应用及包含报表的应用目录作一个比较:
2、独立部署FineReport安装目录下的WebReport目录就是一个标准的应用,因此,若用户希望将报表作为一个独立的应用进行部署的话,可以直接使用WebReport目录进行独立部署。
3、嵌入式部署若用户希望将报表集成到自己的应用中的话,则可以对应上图“部署报表后的应用”目录结构,将对应的报表文件拷贝到相应目录即可。
独立部署(发布)
1、发布应用应用通常以文件夹或war包得形式发布,Web应用服务器不同,发布方式不同:如Tomcat服务器只需要将Web应用拷贝到%FR_HOME%\webapps目录下,重启tomcat即发布成功;而Websphere服务器需要先将Web应用打成war包,然后在websphere控制台进行配置发布。各个服务器下部署报表应用我们会在下面章节中详细介绍。
2、独立部署(发布)部署就是将FineReport应用集成到新的Web工程把FineReport_7.1安装目录下的WebReport文件拷贝到%Tomcat_HOME%/webapps/下:应用名WebReport可以根据需要改变,如可以改为“FineReport”。
3、访问报表报表应用发布(部署)成功蒹筻分虞后,便可以在客户端浏览器中访问了。在客户端浏览器中输入访问地址http://ip:端口/app绿覆冗猩Name/ReportServer?reportlet=GettingStarted.cpt,发送请求给Web应用服务器如tomcat;Web应用服务器会将请求信息发送给报表servlet;报表servlet根据请求信息,如获取希望查看的模板名称reportlet=GettingStarted.cpt,在后台计算生成GettingStarted.cpt的内容,返回给Web应用服务器;最后Web应用服务器将结果返回给客户端浏览器,浏览器将报表结果呈现给我们。注:若Web应用服务器可以在外网进行访问,那么我们就可以外网访问报表了。
嵌入式部署
1、描述由报表应用目录结构章节可知,若希望将报表部署到已有的工程中时,需要按照下图所示的目录结构,将报表相关的文件拷贝到相应目录:
2、复制目录全部复制为了简便,可以直接将%FineReport_HOME%\WebReport\WEB-INF目录下面的classes,lib,reportlets,resources四个目录复制到%Tomcat_HOME%\webapps\jsp-examples\WEB-INF下。注意:%FineReport_HOME%\WebReport\WEB-INF\classes文件夹下面可能会放置一些网络报表的class文件,在和您的工程集成时并无冲突。
3、部分复制也可以选择性的只复制必要性文件至已有工程中。必须复制的文件fr-serve筠续师诈r-7.1.jar:包含了报表服务的所有功能,必须拷灌稹笛黛贝至WEB-INF\lib下;fr-third-7.1.jar:包含了报表服务引用的第三方插件,必须拷贝至WEB-INF\lib下;reportlets:该文件夹为FineReport服务器规定的,不能修改,且必须为小写,其下可以建立子目录,所有报表模板cpt文件必须保存在reportlets文件夹下,且reportlets文件必须放在WEB-INF\下;resources:该文件夹也是FineReport服务器规定的,不能修改,且必须为小写,下面包含了报表服务器的配置信息,拷贝至WEB-INF下面。以上文件或文件夹是必须拷贝到已有应用目录下的。选择性复制的文件classes:该文件夹是应用服务器规定的,主要作用是存放.class文件。若对FineReport进行了二次开发,如自定义函数、程序数据源、程序网络报表等,也需要将编译后的class类文件拷贝到该文件夹下;数据库驱动包:若报表中使用了JDBC连接了数据库,需要将对应的数据库驱动包如Oracle数据库的驱动ojdbc14.jar拷贝到WEB-INF\lib下,其他数据库驱动同样;
4、修改web.xml文件在已有工旯皱镢涛程的web.xml中添加相应的servlet与servlet-mapping子元素。将%FineReport_HOME%/WebReport/WEB-IN僻棍募暖F下的web.xml中如下的部分复制到%Web_home%/webapps/Web工程名/WEB-INF下的web.xml中,在最后一个servlet之后插入:<servlet> <servlet-name>ReportServer</servlet-name> <servlet-class>com.fr.web.ReportServlet</servlet-class> <load-on-startup>0</load-on-startup></servlet><servlet-mapping> <servlet-name>ReportServer</servlet-name> <url-pattern>/ReportServer</url-pattern></servlet-mapping>
5、如上代码复制放到如下目录下面的配置文件里面结果如下:注:web.xml中对于元素出现的顺序敏感。servlet必须出现在servlet-mapping标志之前。所有将所有servlet集合放置在servlet-mapping之前以便于管理与程序调用。
6、检测是否部署成功可以通过浏览报表确定是否部署成功重新启动Tomcat,启动浏览器,在地址栏输入http:/ip:服务器端口号/项目所在目录/ReportServer,能成功进入下图所示页面,则表明FineReport应用集成web应用并部署Tomcat服务器成功: