Tomcat 服务器部署

  • 文档创建者:文档助手1
  • 编辑次数:70次
  • 最近更新:Wendy123456 于 2020-10-19
  • 1. 概述

    Tomcat 是免费且性能相对稳定的 Web 应用服务器,在许多中小型企业中深受欢迎,本文将介绍如何将 FineReport10.0 报表工程部署到 Tomcat 服务器端。

    1.1 支持版本

    支持的 Tomcat 服务器版本和 JDK 版本如下,版本不对应会导致服务器部署失败。

    Tomcat 版本JDK 版本 

    推荐使用 Tomcat8.5.57 及以上版本,或者 Tomcat8 最新版本

    注:使用推荐版本可减少因 Tomcat 版本过低导致的安全问题。

    支持Tomcat7.0~9.0 版本

    不支持 Tomcat10.0 版本

    JDK1.8

    注1:建议使用解压版的 Tomcat 和 JDK。

    注2:10.0 工程暂不支持与 9.0 共用容器。

    注3:所有版本的 Tomcat 部署步骤基本相同,JDK 版本需要与操作系统对应,如 32 位的系统只能使用 32 位的 JDK。

    1.2 开机自启动

    如果用户需要设置 Tomcat 开机自启动,可以参见文档:Web 应用服务器开机自启动

    2. 部署方法

    可以通过三种方法将 FineReport 报表工程部署到 Tomcat 服务器端。

    2.1 服务器部署包

    为方便用户进行服务器部署,帆软整合了包含报表工程和环境配置的 Web 容器,下载解压后即可使用,用户无需配置环境。

    Windows 系统下部署方法参见文档:服务器部署包

    Linux 系统下部署方法参见文档:Linux 下 Tomcat 服务器部署包

    2.2 独立部署

    独立部署需要用户自行下载并安装 JDK 和 Tomcat 服务器来配置部署环境,再将 FineReport 报表工程拷贝到 Tomcat 服务器端。

    Windows 系统下部署方法参见文档:独立部署

    Linux 系统下部署方法参见文档:Linux 下 Tomcat 服务器独立部署

    注:独立部署时需要考虑 Tomcat 和 JDK 的版本对应关系,否则会导致部署失败。

    2.3 嵌入式部署

    如果用户希望将 FineReport 报表部署到已有的 Web 工程中时,可以采用嵌入式部署的方式

    Windows 系统下部署方法参见文档:嵌入式部署

    3. 常见错误

    3.1 决策平台中文无法搜索

    问题描述:

    Tomcat 独立部署 成功后,在决策平台内搜索时,输入中文无法正常搜索,但在本地输入中文进行搜索是可以的。

    解决方案:

    Tomcat 的默认编码格式不是 UTF-8,具体原因参见文档:Tomcat7 编码修改为 UTF-8

    需要修改 %Tomcat_HOME%\conf 目录下的 server.xml 文件,将代码中的编码修改为 UTF-8 格式,如下图所示:

    <Connector port="8080"  protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />

    Snag_48d33744.png

    3.2 JDK12 环境下报错

    问题描述:

    JDK12 环境下将报表工程部署到 Tomcat 服务器端,会报 500 错误。

    1578560537302570.png

    解决方案:

    JDK9 及之后的版本是没有 tools.jar 的,安装低版本 JDK 部署即可。

    3.3 报错404

    3.3.1 案例一

    问题描述:

    The origin server did not find a current representation for the target resource or is not willing to disclose that one exist.

    ]M6SIHFWLA1BS]T9LT{``P6.png

    解决方案:

    确保访问10.0报表工程时 URL 是正确的:http://localhost:8080/webroot/decision,工程路径不能漏掉,且路径中大小写敏感。

    3.3.2 案例二

    问题描述:

    The requested resource is not available.

    P623WRFJ$TMMC_$]B52XU%6.png

    解决方案:

    需要检查一下 JDK 的环境变量配置是否有错,特别是有没有设置 JAVA_HOME。

    3.3.3 案例三

    问题描述:

    Tomcat 启动报错:fine assist start failed

    解决方案:

    检查环境变量指向的%JRE_HOME%\bin底下没有 attach.dll,若没有 attach.dll 文件,需要将%JAVA_HOME%\jdk\jre\bin下的 attach.dll 文件拷贝到此路径下。

    3.3.4 案例四

    问题描述:

    日志报错:The error reported was [E:\tomcat\apache-tomcat-7.0.79\bin\tcnative-1.dll: Can't load AMD 64-bit .dll on a IA 32-bit platform]

    解决方案:

    检查 JDK 版本是否与操作系统对应,如32位的系统只能使用32位的 JDK,64位的系统只能使用64位的 JDK。

    3.3.5 案例五

    问题描述:

    Tomcat 升级或更换为其他版本后,访问报表时报404错误,且日志文件中存在 RFC 系列错误信息。

    解决方案:

    修改 %Tomcat_HOME%\conf 目录下的 server.xml 文件,在 server.xml 中添加如下代码,重启服务器即可。

    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" relaxedQueryChars='^{}[]|&quot;' />

    如果修改 server.xml 后还是中文乱码,可以在 catalina 文件中添加:

    set JAVA_OPTS=-Xms512m -Xmx1024m -XX:MaxPermSize=1024m -Dfile.encoding=UTF-8

    3.4 配置管理员密码出错

    问题描述:

    使用 exe 安装包安装的 Tomcat,部署工程后设置管理员账号时前端报错:配置管理员密码出错,后台报错:ERROR [standard] Database is not initialized,如下图所示:

    1559700368248933.png

    解决方案:

    这是由于 exe 启动方式内存不足导致的,需要调大 tomcat 启动内存,修改内存方法如下:

    双击如下图所示%Tomcat_HOME%\bin下的 exe 文件,每个 Tomcat 版本名称不同,Tomcat9 是:Tomcat9w.exe,如下图所示:

    Snag_415ebeb.png

    双击文件后,打开 Tomcat 服务器管理界面,将启动内存调大,如下图所示:

    Snag_4199feb.png

    3.5 10.0 工程部署到 Tomcat 后没有生成 fanruan.log

    问题描述:

    FineReport 10.0 工程部署到 Tomcat 后,%Tomcat_HOME%\logs文件夹下没有生成 fanruan.log 文件,无法查看工程执行情况。

    而且报错:

    java.io.FileNotFoundException: /var/lib/tomcat8/../logs/fanruan.log (No such file or directory)

    解决方案:

    1)在%Tomcat_HOME%\webapps\webroot\WEB-INF路径下新建一个名为 config 的文件夹。

    2)在 config 文件夹中新增log4j.properties文件,如下图所示:

    9.png

    文件内容如下所示:

    log4j.rootLogger=${LOG_ROOT_LEVEL},standard,stdout
    log4j.appender.standard=com.fr.third.apache.log4j.DailyRollingFileAppender
    log4j.appender.standard.DatePattern='.'yyyy-MM-dd
    log4j.appender.standard.File=${LOG_HOME}/../logs/fanruan.log
    log4j.appender.standard.layout=com.fr.third.apache.log4j.PatternLayout
    log4j.appender.standard.layout.ConversionPattern=%d{HH\:mm\:ss} %t %p [%c] %m%n
    log4j.appender.standard.Append=true
      
    log4j.appender.stdout=com.fr.third.apache.log4j.ConsoleAppender                        
    log4j.appender.stdout.layout=com.fr.third.apache.log4j.PatternLayout                         
    log4j.appender.stdout.layout.ConversionPattern=%d{HH\:mm\:ss} %t %p [%c] %m%n

    用户可在代码第四行修改日志存放路径。

    附件列表


    主题: 部署集成
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!