1. 概述编辑
本文主要汇总了 FineReport 10.0 升级至 11.0 过程中的常见问题及解决方案,便于大家更好的解决升级过程中遇到的问题。
FineReport 10.0 升级至 11.0 过程中需要使用到升级工具,在使用升级工具的过程中出现的问题可以参考 升级工具常见问题 进行排查。
2. 10.0 备份还原失败编辑
2.1 报错:java.sql.SQLDataException: data exception: string data, right truncation; table: FINE_CONF_ENTITY column: VALUE
问题现象:配置了外接库,手动备份失败,报错“java.sql.SQLDataException: data exception: string data, right truncation; table: FINE_CONF_ENTITY column: VALUE”
原因分析:fine_conf_entity 表中存在数据长度超长,导致备份失败。
解决方案:
方法1:将超长的数据字段筛选出来删掉 。
方法2:(只支持mysql数据):添加一条记录到 fine_conf_entity 表中 id:BackupConfig.customValueLength value: 最大长度数字(比如200000),添加完重启服务生效
2.2 报错:java.lang.RuntimeException: com.fr.third.org.hibernate.exception.ConstraintViolationException: could not execute statement
问题现象:配置了外接库,手动备份失败,报错“java.lang.RuntimeException: com.fr.third.org.hibernate.exception.ConstraintViolationException: could not execute statement
原因分析:FINE_AUTHORITY 表里 AUTHORITYENTITYID 这个字段里有3条数据末尾有空格
解决方案:查询异常有空格数据,并删除异常数据即可。
3. 10升11后数据迁移失败编辑
3.1 数据集报错 1301
问题详情:工程从10.0升级到11.0后,切换到11的远程目录下,操作升级后的模板进行操作(修改数据集sql、控件等)就会报错,模板存到本地目录,打开编辑、预览一切正常,设计器和服务器版本一致。10-11后,所有模板无法保存
原因分析:11.0 内置了新引擎和抽数缓存两个模块,老的 server.xml 没有这两个模块的配置,所以不会启动,导致了功能异常
解决方案:删除 WEB-INF/classes/com/fr/config/server/server.xml 后,重启服务恢复正常
3.2 数据迁移到 sqlserver 数据库失败
问题详情:升级到11版本后,数据迁移到服务器端的 sqlserver 数据库,迁移报错“违反了 PRIMARY KEY 约束“PK__QRTZ_CRO__922200A77784281C”。不能在对象“dbo.QRTZ_CRON_TRIGGERS”中插入重复键,违反了 PRIMARY KEY 约束“PK__QRTZ_CRO__922200A706C24256”。不能在对象“dbo.QRTZ_CRON_TRIGGERS”中插入重复键”
原因分析:数据库排序规则设置的是 Chinese_PRC_CI_AS,需要改成 Chinese_PRC_CS_AS(大小写敏感)
解决方案:
1)清空weixin相关脏数据,重新迁移
2)数据库配置区分大小写
注意事项:
1)外接库尽量设置区分大小写,若有特殊需求再根据迁移结果进一步处理
2)尽量新建一个空白库做迁移
3.3 数据迁移到mysql数据库,迁移失败
问题详情:升级到11版本后,配置mysql外接库,迁移失败,迁移报错“ERROR [com.fr.third.org.hibernate.engine.jdbc.spi.SqlExceptionHelper] Duplicate entry 'QuartzScheduler-weixinCollectBaseInfoTriggerGroup-weixinCollectB' for key 'PRIMARY'”
原因分析:10-11后,新旧版本的微信插件会添加两个定时任务,名字分别类似 weixinXXX 和 WeiXinXXX,迁移到不区分大小写的外置库时,这两条就被认为是同一条了,就会报错,导致迁移失败
解决方案:外接库配置区分大小写
4. 10升11后报表显示异常编辑
4.1 10.0升级11.0版本后,老版本 frm 打开为空白,打开同时新建一个报表
问题详情:打开老版本frm,设计器会自动新建一个 workbook,且原目标设计页面内容空白,预览正常有数据。
原因分析:11.0工程启动的时候,自动安装了模板助手插件,导致了功能异常。
解决方案:禁用模板助手插件后,重新切换远程目录,模板打开正常。
4.2 10-11升级后,地图展示效果异常
问题详情:地图效果异常,展示效果跟原先10环境中不一致
原因分析:11.0图表取数逻改动,跟原先的10取数逻辑不完全一样,升级后默认采用11.0的图表取数逻辑,详情见 10-11兼容说明 第4部分。解决方案:安装 图表数据源兼容插件 切换到旧版取数逻辑或重新配置下图表数据。
4.3 10-11后,地图图层不展示
问题详情:升级后,原先预览正常的地图模板,图层不展示,升级后 jar 包日期为 2022-03-29。
原因分析:11.0.3版本中,更改了图层展示的逻辑,必须要登陆决策平台才能展示图层,在11.0.4中修复
解决方案:访问模板的同时,在浏览器先登陆下决策平台或更新 jar 到 11.0.4
4.4 10-11后平台大部分模板预览报错“请联系管理员”
问题详情:10-11后,超管账号,部分模板提示没权限;部分模板可以正常预览;远程设计器下,异常的模板,预览依旧异常。
报错关键字:ERROR [standard] message client not initialized! java.lang.RuntimeException: message client not initialized
原因分析:finedb 损坏,部分字段值丢失
解决方案:修复 fiendb 后重新升级或者拿正常的 fiendb 到环境中替换下
4.5 10-11后,自定义js、图片等引用失败
问题详情:10-11后,原先 10.0 里面能正常引用的 scripts 文件夹下的自定义 js 和图片,在 11.0 里面不生效
原因分析:升级工具处理后,11.0 里面 scripts 文件夹作为静态资源被拦截,导致 scripts 里面放的自定义 js 文件加载不到
解决方案:使用FINE_CONF_ENTITY可视化配置插件,将修改 ServerPreferenceConfig.useOptimizedUPM 值为 true
4.6 升级后预览模板报错
问题详情:服务器是windows环境,发了升级工具,按照文档操作,升级报错 windows.go:28: exec: '.upgrade//runtime//windows//bin//java': file does not exist,重启之后依旧报错RuntimeError: Failed to bind to address [::]:20218; set GRPC_VERBOSITY=debug environment variable to see detailed error message
解决方案:更新升级后再将 upgrade 生成的 jdk 文件删除重新生成;手动删除 10.0 的 jar 包后重启后正常;插件更新,需要先删除再重新安装
5. 10升11后插件异常编辑
5.1 10-11后,后台日志一直抛错“ERROR java.lang.ArrayIndexOutOfBoundsException”
报错关键字:ERROR java.lang.ArrayIndexOutOfBoundsException at com.fr.genrral.http.HttpToolBox.getHttpClient<HttpToolbox.java>~[fine-core-11.0.jar:?] at com.fr.decision.webservice.v10.plugin.PluginService.getStopPluginCategory<Unknown Source>[fine-decision-11.0.jar:?]
原因分析:部分插件内置了,默认禁用,部分插件不兼容,导致的异常
解决方案:更新插件
6. 10升11后数据决策系统异常编辑
6.1 10-11升级后,访问决策平台提示账号密码错误
问题详情:升级到11版本后,启动工程,访问决策平台提示账号密码错误
原因分析:lic上传到服务器端损坏,导致注册失败
解决方案:lic文件已压缩包格式上传到服务器端再解压,注册成功
6.2 平台首页出现多层嵌套
问题详情:10-11后访问平台,首页模板嵌套了多层
原因分析:首页是挂载的模板链接,链接形式需要拼接上 login 参数
解决方案:链接地址后面拼接上 login 或挂载形式换成直接选择模板