帆软报表模块
安装配置说明
更新日志
日期 |
修改内容 |
备注 |
2016-11-09 |
增加 “设置报表访问权限配置” |
|
2017-03-13 |
nginx部署集群的详细说明及注意事项 |
|
2017-07-19 |
更新若产品不按标准路径访问报表时的nginx设置说明 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1
环境需求及实施部署
1.1 软硬件要求
1.1.1 浏览器兼容性
支持IE9以上
支持Chome 40以上
支持Safari
要求最小屏幕宽度为1152,更小的屏幕无法保证显示效果
1.1.2 操作系统
无特殊要求,以能正常运行应用服务器为准
1.1.3 应用服务器
Tomcat 6/7/8
Weblogic 10以上
Webphere 7以上
2 安装说明
2.1 安装frReport2
拷贝frReport2目录到emap环境的应用目录下。如果是压缩包,请先解压,然后再拷贝;如果原来的应用目录下有frReport2,请先删除;
2.2 安装后验证是否成功
启动后,请访问【服务器地址】/emap/sys/frReport2/show.do,确保frReport2已经成功安装并启动。
3 帆软运行环境配置
frReport2自带一个嵌入式的帆软运行环境,根据业务系统的需求,可能有如下配置.以下设置所需的信息由业务系统提供或指定;
3.1 设置报表访问权限配置 - fr_app_mapping.properties (必须)
在ROOT目录下,必须有fr_app_mapping.properties文件,否则访问任何报表时都会报无权限错误。详细功能请参考帆软报表功能说明书。
3.2 帆软授权文件 - FineReport.lic(必须)
位于frReport2\WEB-INF\resources目录
3.3 业务数据源配置 - datasource.xml(必须)
位于frReport2\WEB-INF\resources目录,帆软报表需要直接访问业务系统的数据,必须在datasource.xml中指定数据库访问信息。
3.4 外部cpt文件目录设置 - JZReportletConfig.xml(可选)
位于frReport2\WEB-INF\resources目录,由业务系统在设计器中制作的cpt文件,可以放置在frReport2目录之外,通过JZReportletConfig.xml中路径设置来指定。
3.5 集群配置 - 使用nginx方式部署(集群环境必须)
配置文件在WEB-INF\resource文件下的cluster.xml文件,如没有则新增加(不要用记事本或者写字板等编辑此文件)。我们一般是共享目录方式部署,使用的是帆软的新的集群部署插件;帆软集群新部署插件方法见帆软的帮助文档(帆软集群)http://www.finereporthelp.com/help/15/2/21.html
鉴于在使用帆软集群,在项目现场大并发量时单机环境比集群环境效率更高的现象,报表应用可以不使用帆软的集群,更改为通过nginx来做负载均衡配置(代码不需要做出改动),具体修改方法为:
1、删除掉帆软的集群配置xml文件(报表应用的frReport2\WEB-INF\resources\cluster.xml文件);
2、 kill掉所有使用帆软集群配置的应用,要杀掉所有进程的原因是因为帆软的集群代码如何工作不清楚,防止一些不明因素的cache影响,要杀掉所有已经使用帆软集群的应用,而且是用杀进程的方式,而不是重启wl部署。这个只在切换配置的过程中需要,后续不再需要这么做
3、不要使用weblogic的集群做负载均衡配置,去掉现有的weblogic集群;
4、额外部署一个节点做报表访问,该节点和集群中的其他节点一模一样(如有可能,这个节点使用尽可能高的cpu配置);
3、1若条件有限制,也可使用集群中的现有节点之一做报表访问,参考下面例子中蓝色框中部分
5、使用nginx设置将所有帆软的访问导向到固定的报表服务器。
示例如下:

配置文件应注意以下几项:
1、upstream hrms_server中配置集群的机器ip及端口要正确;
2、upstream hrms_report_server中配置一个节点做报表访问的二种方式只能选择一种;
3、upstream hrms_report_server中只能有一个节点
4、location ~/hrms/sys/frReport2/show.do中的内容应该和location /hrms中的内容应该保持一致(除了最后一行);
5、若有产品不是使用标准路径访问报表show.do方法(例如人事通过sys/ggglmk/report/show.do),则需要增加该路径的location设置,即除图中设置外,增加新的location设置,该设置除location后面的URL pattern外,其他设置应和图中location ~/hrms/sys/frReport2/show.do中的完全一致。url pattern的设置由于各产品访问路径不一样,请各产品参照nginx手册指导实施设置,若产品有不止一个访问报表的url,则需要增加多个location设置,每个url对应一个location设置。
6、nginx的配置需与实际报表访问地址一致;如下图所示:

7、为防止一些cache效果,可能需要重启整个节点而不是单个应用
3.6 自定义函数配置 - function.xml(可选)
某些报表文件中会用到自定义的函数。
一、将编译好的class文件放到报表应用下(frReport应用或者是帆软的安装目录)下的WEB-INF目录下的classes文件夹下的对应包名下,如果WEB-INF目录下没有classes文件夹就新建一个
二、如果是帆软设计器,“服务器”菜单下有个“函数管理器”,在里面注册你刚才写的函数,注册好之后就可以在设计器中的文件中使用这个函数了,服务器上使用的话在服务器上重复1的操作,然后就帆软安装目录下的functions.xml文件考到服务器上对应目录下覆盖原来的,也就可以使用了
3.7 告警信息配置(log级别设置) - config.xml
在我们访问报表服务器时,服务器会将执行的信息输出到日志文件中。这些输出的信息有4个级别,报表集成到服务器之后,这些信息全输出在服务器日志文件中,和其他应用信息是混在一起的,不方便查看,对我们不使用帆软决策系统的还可能会产生一些大量无用的告警信息或者数据库sql异常信息。我们可通过设置修改配置文件来控制帆软的log级别设置。
Log输出级别分为四种:SEVERE,WARNING、INFO和DEBUG,SEVERE是导出服务器的严重报错日志,WARNING 输出执行报表时的错误或警告信息,INFO则是导出所有报错信息,DEBUG是指在INFO输出的日志基础上,增加输出一些系统信息日志以及sql执行的更加详细日志,一般是需要二次开发的程序员前期开发调试模板中使用。设计器默认的日志log级别为INFO,服务器默认日志级别WARNING。
注:8.0以下版本DEBUG日志级别只有在设计器日志下面才有,服务器日志没有DEBUG这个级别。
设计器中修改方法为:“文件”菜单——“选项”——“高级”

服务器修改,如果带有数据决策系统的,可以在数据决策系统中修改

没有数据决策系统的,可以通过直接修改配置文件来实现。配置文件为报表应用下的%frReport2%/WEB-INF/resources目录下的config.xml

4 安装配置检查checklist
4.1 frReport2不能启动(frReport2/show.do不能访问)
1. 确定所使用的frReport2和EMAP底座版本;
5 常见问题
5.1 未注册或者需要注册码
访问报表时出现“报表系统尚未注册”的提示信息或者“你需要一个注册码”之类的信息,表明你现在使用的报表还未进行授权注册或者授权不成功。如下图所示

问题原因:报表系统中没有授权文件(FineReport.lic)、授权文件已过期、授权文件和对应的帆软的jar包版本不匹配导致授权不成功
解决方法:
一、检查报表应用的WEB-INF/resources目录下是否有FineReport.lic文件;
二、可以通过报表的决策系统中的“注册信息”中查看授权文件的有效期,看是否已过期;

三、公司使用的授权文件对应的帆软版本号为8.0,查看自己使用的版本号是否匹配。
5.2 找不到数据连接
访问报表时出现“找不到数据连接XXXX”的错误信息提示。如下图所示

问题原因:(1)报表应用中未配置此名称的数据连接或者配置的数据连接名称有错误。(2)原来访问此报表是正常的但是添加了授权注册文件后出现此问题。
解决方法:
一、检查报表应用中是否配置有此名称的数据连接或者数据连接的名称是否正确;报表应用中的所有的数据连接信息都是保存在WEB-INF/resources目录下datasource.xml配置文件中。
二、查看datasource.xml配置文件中是否有多个数据连接信息,我们购买的帆软的授权文件是单数据源的,配置文件中如果多于1个数据连接加载报表应用时就加载不到数据连接信息;
5.3 自定义报表路径,通过配置指定报表的存放目录
帆软报表的默认存放目录为WebReport\WEB-INF\reportlets,使用自定义报表目录,可按照以下步骤操作:
一、 报表路径的定义
路径定义在WebReport\WEB-INF\resources下JZReportletConfig.xml中

其中” D:\opt\reportlets”为报表的自定义存放目录
二、 将开发完的报表放在步骤1中的目录下
三、 报表的访问路径
默认路径下的报表的访问路径为:
http://localhost:8075/WebReport/ReportServer?reportlet=WorkBook.cpt
现在的访问路径应为
http://localhost:8075/WebReport/ReportServer?reportlet=com.fr.JZ&cpt=WorkBook.cpt
5.4 LINUX打印、导出后字体乱码或者变形
通过设计制作的cpt报表文件,上传服务器打印或者导出成word、excle、PDF文件,字体会变成乱码、粗体字之类的某有效果、设计器中的字体导出后变成另外一种字体。
产生原因:本地和服务器上的环境不一致或者其他设置问题或者。
解决方法:
首先确定本地和服务器是否存在同样的问题。先确保本地和服务器上使用的帆软jar包一致、再确定本地设计器中是否有此问题。如果jar包一样,本地正常而服务器上存在问题,是因为服务器上缺少使用到的字体包而造成的,可以通过上传字体包或者自己下载一个字体安装包文件到服务器上安装后重启服务器后解决此问题;如果本地和服务器相同,比如导出word后的字体会变成另外一种字体或者导出excle后报表会变形(单元格内容换行),则应该是其他的一些设置原因引起的,比如在设计器中将单元格中的内容设置成了“单行显示”、“以图片方式显示”等

5.5 集群环境下访问报表报session time out
在服务器集群部署环境中,点击访问报表偶尔报session time out,或者时访问某应用的报表时会出现此问题,其他报表访问正常。
原因如下:集群的每台服务器间必须创建通信,即session粘滞,双机集群时,用户发出一请求被分配至服务器A,保存了一些信息在session中,该用户再次发送请求被分配到服务器B,要用之前保存的信息,若服务器A和B之间没有session粘滞,那么服务器B就拿不到之前的信息,就返回session time out。一般是集群配置文件配置错误、集群部署的报表应用的主机未开,只开了辅机、未设置报表应用中的DES加密解密key造成的。
解决办法:
一、如果只是某报表访问时有此问题,其他的报表访问都正常时,检查是否配置有DES加密解密key.

二、查看集群的主机是否开启,必须要保证集群主机开启才能正常访问。
三、检查是否设置有报表的集群配置文件或者配置文件是否正确。配置文件在WEB-INF\resource文件下的cluster.xml文件,如没有则新增加(不要用记事本或者写字板等编辑此文件)。

该配置文件不需要对所在服务器做特殊设置,将包含该配置文件的底座重新部署后,重启服务,session超时的问题消失。
注意:我们一般是共享目录方式部署,使用的是帆软的新的集群部署插件;帆软集群新部署插件方法见帆软的帮助文档http://www.finereporthelp.com/help/15/2/21.html
5.6 后台报SQLException,访问报表正常
访问报表正常,但是在后台的WEB容器控制台中有一些警告,显示帆软插入数据的时候会有SQLException异常。
报这个异常的原因是帆软会记录一些报表日志,而目前jar包中往数据库中的插入逻辑与已存在的表结构之类的有冲突或者不匹配造成的,此问题并不影响报表的正常访问。解决方法:删除掉帆软应用下的logdb文件夹后重新启动WEB容器就可以了;另外,如果帆软的报表日志写入功能用不到可以进行关闭,在报表应用的WEB-INF\resources文件夹下config.xml中,如下图:

日志等级可以开到最高servere在后台只显示严重报错,LOGCNG设置为false,关闭日志写入logdb
5.7 当前Hsql数据库已被另一线程锁定
在访问报表的时候后台会打印“当前Hsql数据库已被另一线程锁定”的错误信息。

问题原因:为了记录数据决策平台的设置及访问日志等,帆软集成了HSQL服务,它的服务启动模式并非server,所以在使用时会有一些莫名其妙的线程锁死等问题。
解决方法:停掉WEB服务器,将报表应用WEB-INF目录下的finedb和logdb文件夹,及这2个文件夹的备份文件夹统统全部删掉,重启WEB服务器之后就会正常。此问题不能彻底解决掉,只能这样临时解决掉。
5.8 帆软日志自动清理的设置
报表的访问日志会随着时间的积累而不停的增加,这些日志信息对我们用处不大,我们除了可以通过手工删除对应的文件夹来手工清理日志信息之外还可以通过设置来完成帆软日志的自动清理。
解决方法:
一、如果是本地帆软设计器,可以在决策系统中设置自动清理及对应的清理周期。如下图所示:

二、如果是服务器上,可以修改相关的配置文件来完成设置。配置文件为报表应用下WEB-INF/resources目录下的config.xml

5.9 集群环境中升级帆软报表或者更新底座后主机启动正常辅机启动不正常。
集群环境中升级帆软报表或者更新底座后主机启动正常,辅机未见启动正常的日志,启动到初始化frReport2时,一直在尝试执行某个动作,一段时间后(30分钟左右),辅机有weblogic控制台显示建康:warning,启动|停止server时,部署均无法随server启动|停止;或者辅机启动报错,错误如下:
这样的错误是因为采用重启部署的方式产生的。正确的部署步骤应该是reboot,重启weblogic,建server,建部署,把应用的frReport2删除,部发版的frReport2,再修改配置文件,再重启server。如果因为重启server比较慢,而采用重启部署的方式可能就可能产生上述的问题。
重启部署的方式,帆软的运行态不能释放,重启部署一次就相当于多运行了一个帆软,就会产生错误。如果部署时有这样的错误,需要先把进程kill掉,然后再启动就正常了。