1. 概述编辑
1.1 版本
支持的 Tomcat 服务器版本和 JDK 版本如下,版本不对应会导致服务器部署失败。
Tomcat 版本 | JDK 版本 |
---|---|
推荐使用 Tomcat8.5.57 及以上版本,或者 Tomcat8 最新版本 注:使用推荐版本可减少因 Tomcat 版本过低导致的安全问题。 支持Tomcat7.0~9.0 版本 不支持 Tomcat10.0 版本 | JDK 1.8 且小版本需在 JDK8u102 以上 |
1.2 预期效果
用户希望将 FineReport 报表工程部署到 Linux 系统上的 Tomcat 中,效果如下图所示:
1.3 实现思路
1)将本地工程的 webroot 文件夹以压缩包形式上传到 Tomcat 服务器的%TOMCAT_HOME%\webapps下,并解压。
2)将 tools.jar 文件放到%TOMCAT_HOME%\lib下或者%TOMCAT_HOME%\webapps\工程名\WEB_INF\lib下。
3)重启 Tomcat 服务器,访问报表工程地址即可。
1.4 环境准备
用户需要提前在 Linux 系统下安装 JDK 和 Tomcat,具体的安装方法可以自行查阅资料,文档和技术支持不负责环境搭建部分的内容。
本文以 CentOS7+JDK1.8+Tomcat8.5 为例进行演示,其他版本命令可能略有区别,请自行处理。
注1:安装的 JDK 版本一定要与操作系统匹配,64 位操作系统可以安装 32 位的 JDK ,但是 FR10.0 不支持这样的操作,必须保持统一。
注2:不建议用户环境变量配置 CATALINA_HOME 或者 TOMCAT_HOME 。
2. 操作步骤编辑
2.1 上传 webroot 文件至 Tomcat 环境中
1)将本地报表工程的 webroot 文件夹压缩,将压缩包上传至%TOMCAT_HOME%\webapps下,可以通过 WinSCP/FTP 等软件上传。如下图所示:
注:不推荐直接上传文件夹,防止文件出现问题。
上传完成后,解压压缩包,代码如下所示:
unzip webroot.zip
2.2 引入 JDK 中的 tools.jar 文件
将%JAVA_HOME%\jdk\lib下的 tools.jar 拷贝到部署的服务器中,拷贝到%TOMCAT_HOME%\lib下或者%TOMCAT_HOME%\webapps\工程名\WEB_INF\lib下。详细内容参见文档:击报错500:服务器部署需引入tools.jar
代码如下所示:
cp /usr/java/jdk1.8.0_131/lib/tools.jar /usr/tomcat/apache-tomcat-8.5.61/lib
2.3 重启 Tomcat 服务器
1)进入%TOMCAT_HOME%/bin目录,先运行shutdown.sh,关闭 Tomcat 服务器。
./shutdown.sh
2)查找是否还有 Tomcat 的进程,如果有 kill tomcat 进程。
ps -ef |grep tomcat
如果有 Tomcat 的进程,则 kill,pid 为相应的进程号。
kill -9 pid
3)再运行 startup.sh 。
./startup.sh
4) 查看 Tomcat 日志。
tail -f ../logs/catalina.out
这样 Tomcat 服务器就重启完成了。
2.4 效果查看
启动浏览器,在地址栏输入:http://ip:服务器端口号/工程名/decision,能成功看到部署成功页面,则表明 FineReport 应用部署 Tomcat 服务器成功,如下图所示:
3. 注意事项编辑
3.1 权限问题
Linux 的文件权限,检查整个工程读写运行权限,一般我们可以直接给整个工程全部的权限,命令如下:
chmod -R 777 webroot/
3.2 路径问题
Linux 的路径里需要使用反斜杠,举例:Windows 中 URL 路径为 emb:jdbc:hsqldb:file://${ENV_HOME}\finedb\db,而 Linux 中 URL 路径为emb:jdbc:hsqldb:file://${ENV_HOME}/finedb/db
3.3 中文乱码问题
Linux 下的中文乱码问题一般可以通过两种方式解决。
1)安装中文语言包
安装方法:服务器安装字体
2)安装字体包
安装方法:在 Windows 系统中下的C:\WINDOWS\Fonts\找到相应的字体,将其拷贝到 Linux 系统下报表服务器使用的 JDK 下 JRE 的\lib\fonts目录下,重启服务器。
3.4 云迁移目录丢失
Ubuntu 系统下,将正式环境中的 Tomcat 打包后拷贝到云服务器上,启动Tomcat后,目录丢失,同时,在目录管理中新增目录,提示报错信息“目录已存在”。
3.4.1 报错信息一
问题描述
报错信息如下所示:
AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava
.awt.headless=true"? See also: https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+got+java.awt.headle ss+problem
java.lang.UnsatisfiedLinkError: /mnt/jdk1.8/jre/lib/amd64/libawt_xawt.so: libXrender.so.1: cannot open shared
object file: No such file or directory
解决方案
apt-get install libxrender-dev,重启 Tomcat 。
3.4.2 报错信息二
问题描述
java.lang.UnsatisfiedLinkError: /mnt/jdk1.8/jre/lib/amd64/libawt_xawt.so: libXtst.so.6: cannot open shared object
file: No such file or directory
解决方案
apt-get install libxtst-dev,重启 Tomcat 。