1. 问题描述
报表在设计器端设计完后,将其部署到服务器进行预览,可能会出现如下几种情况:
1)本地预览正常、部署到服务器后报错。
2)本地预览效果和服务器预览效果不一致。
3)模板修改后服务器上预览还是旧的效果。
本文主要概述上述问题的常见排查步骤及解决方案。
2. 排查步骤
2.1 步骤一:检查模板是否相同
首先确认本地预览的模板与部署在服务器中的模板是否是同一个,若模板不相同,则将本地的模板拷贝到服务器上;若模板相同则进行步骤二的操作。
2.2 步骤二:检查 JAR 包是否相同
确认设计器中使用的 JAR 包与服务器中使用的 JAR 包日期是否一致,若不一致,建议使设计器 JAR 包日期与服务器端一致。
用户可联系技术支持获取 JAR 包,参考 升级指南 文档的 4.2.1 节内容人工更新 JAR 包。
注:技术支持联系方式:前往「服务」,选择「在线支持」、电话「400-811-8890」
1)设计器 JAR 包日期
点击菜单栏「帮助>关于软件」,如下图所示:
2)服务器 JAR 包日期
管理员进入平台,选择「管理系统>注册管理」,在「版本信息」处即可查看 JAR 包日期,如下图所示:
2.3 字体是否缺失
大部分的问题通过统一 jar 的版本都是可以解决,但是还有一小部分涉及到乱码的问题需要统一下服务器和本地的字体,或者是将 linux 的环境调整到中文环境,字体安装步骤可以参考:服务器安装字体
2.4 磁盘空间是否充足
一般出现保存时报错,或者无法保存的现象大概率就是服务器磁盘空间的问题。
3. 案例分析
3.1 JAR包不统一
问题描述
重启服务器后,远程设计下的模板预览出来的界面是空白,将360改成兼容模式就一直显示加载中,换成IE也是一直显示在加载中,导出的内置数据是可以加载出来的,同一个模板,在本地目录下是可以预览出来的
原因分析
远程本地JAR不一样
解决方案
本地和服务器都升级了下就可以了
3.2 服务器字包不统一
3.2.1 预览行高异常
问题描述
本地正常,远程设计下部分行行高异常
原因分析
服务器缺少字体导致的
解决方案
tomcat用的jre的fonts下新建个fallback,放入字体,重启tomcat
3.2.2 远程设计模板,报错空指针
问题描述
远程设计模板,报错空指针,java.lang.NullPointerException at sun.awt.FontConfiguration.getVersion,本地正常
原因分析
FineReport 使用的是 OpenJDK 的 JRE ,里面不带字体包。如果 Linux 缺少字体包,预览模板就会报错
解决方案
1)在 Linux 中直接执行命令 yum install fontconfig,然后重启 Linux 系统 。
2)如果 Linux 有安装 JDK,直接将 JDK 安装目录下的 %JAVA_HOME%\jre 文件夹拷贝并覆盖掉 Tomcat 安装目录下的 %TOMCAT%\jre 这个文件夹,将 %JAVA_HOME%/lib下的 tools.jar 拷贝到 Tomcat 安装目录下的 %TOMCAT%/lib 文件夹中,覆盖掉原有的 tools.jar
3.2.3 远程预览报错或加载不出来,本地正常
问题描述
新建的模板,只要在远程环境下,cpt是显示的是报错,frm是一直加载不出来,本地目录下是正常的没有问题
原因分析
linux服务器缺少中文字体包
解决方案
现将系统语言环境切换为zh_CN.utf8,复制tomcat对应的fonts字体
3.2.4 新服务器远程显示就会出现条形码格式乱码
问题描述
本地正常,老服务器也正常,新服务器远程显示就会出现条形码格式乱码,将设计器的字体包都复制过去也不行,自适应属性调整之后也不行
原因分析
新服务器缺少老服务器的字体包
解决方案
将老服务器的字体包复制到新服务器就可以了
3.2.5 地图在本地预览正常,服务器下无法预览
问题描述
本地做好的场景地图/gis轮播地图,放到服务器下远程设计就预览不了了,白屏,本地预览是正常的,确认显卡没问题,更新插件之后还是白屏,其他扩展图表显示正常,但是场景地图涂层不显示
原因分析
linux 缺少中文字体包
解决方案
安装之后显示正常