1. 概述
1.1 版本
帆软产品版本 | 功能变动 |
---|---|
FineReport11.0.9信创版 FineBI6.0.4信创版 FineDataLink 4.0.19 信创版 | - |
1.2 功能简介
有时用户需要将 FineReport/FineBI/FineDataLink 部署在东方通容器内进行使用。
支持部署的环境信息详情参见:安装环境支持范围
2. 部署方法
2.1 安装 TongWeb
将安装包上传到安装目录下例如:/opt/Tongweb,进入该目录执行
sh Install_TW6.1.5.7_Enterprise_Linux.bin -i console
进行安装,如下图所示:
跟随指示点击电脑回车 enter ,如下图所示:
输入Y
选择 JDK 环境,选择1
选择安装目录,可自定义选择安装目录位置,若选择默认路径则按 enter,等待安装即可,如下图所示:
设置端口,若不需要修改端口的话,则按回车建 enter 即可,后续需要修改端口可以在安装目录的conf的tongweb.xml文件中修改,如下图所示:
设置完端口后按回车 enter 退出即安装完成,如下图所示:
2.2 启动 TongWeb
示例中为进入 opt/Tongweb6.1/bin目录下,执行./startserver.sh启动 Tongweb ,如下图所示:
访问 http://ip:9060/console 进入控制台首页,9060为默认端口,默认系统管理员用户名及初始密码为:thanos/thanos123.com。,点击登录,如下图所示:
注:部分版本东方通默认系统管理员用户名及初始密码为:twnt/twnt123.com
2.3 修改TongWeb参数
1)修改URL编码格式
WEB容器配置>HTTP通道管理>tong-http-listenser>其他设置处,修改「URL编码格式」为「UTF-8」。
不修改会导致FineReport/FineBI工程中无法匹配中文名,服务器数据集处上传Excel后名称乱码。
2)修改编解码字符集
容器配置中,修改「默认请求参数解码字符集」和「默认应答编码字符集」为「UTF-8」。
不修改会导致FineReport/FineBI工程中无法匹配中文名,服务器数据集处上传Excel后名称乱码。
3)添加服务器启动参数
启动参数配置>服务器参数设置处,添加/修改服务器启动参数-DWebModuleOnly=true
添加后必须重启TongWeb(交互界面提示会自动重启服务器,但实际并不会,必须手动重启)
不修改会导致TongWeb启动报错:
[2022-11-08 15:21:56 275] [SEVERE] [http-nio2-0.0.0.0-9060-exec-74] [core] [ContainerBase.addChild: start: ]
com.tongweb.tomee.catalina.TomEERuntimeException: com.tongweb.tongejb.OpenEJBException: Unable to create annotation scanner for web module webroot: null
4)修改tongweb.xml文件
修改 conf/tongweb.xml 文件, <protocol not-allow-HTTP-methods 字段后的PUT和DELETE删除。
一共有三处,均需修改
不修改会导致tongweb容器的PUT/DELETE不可以使用。
2.4 打war包
方案一:
1)参考设计器部署概述部署工程
2)Tongweb 部署FineReport11.0还需要加一些jar包到%Tongweb%/lib下才能部署上,详情请参见第三章附件。
3)在 FineReport 或者 FineBI 安装目录%FR_HOME%/webapps/webroot 下执行以下语句打 war 包
jar cvf webroot.war *
方案二:
1)获取 webroot 压缩文件并将其上传至服务器中,如下图所示:
2)上传文件后,进入上传位置,例如 /opt/applications,新建文件夹 webroot 并将文件解压至新建文件夹中:
mkdir webroot
unzip webroot.zip /opt/applications/webroot
3)Tongweb 部署FineReport11.0还需要加一些jar包到%Tongweb%/lib下才能部署上,详情请参见第三章附件。
4)执行以下语句对解压好的 webroot 打 war 包:
jar cvf webroot.war *
2.5 部署应用
在控制台处点击「应用管理>部署应用」,如下图所示:
选择 webroot.war 所在的位置,点击「开始部署」,如下图所示:
默认设置,点击「下一步」,如下图所示:
选择虚拟主机位置,点击「下一步」,如下图所示:
点击「完成」,提示正在部署中,如下图所示:
如果部署成功,应用的状态会显示已启动。
2.6 启动工程
访问http://ip:8088/webroot/decision(8088为默认端口,可自行修改),如下图所示:
3. 注意事项
3.1 启动报错:java.lang.ClassNotFoundException
问题描述:
TongWeb 6.1.5.6 版本安装工程后,工程无法启动,%Tongweb%/logs存在类似报错:
解决方案:
1)下载以下JAR包:
2)将 JAR 包添加至%Tongweb%/lib 目录下,如下图所示:
3.2 websocket开放
由于使用东方通容器自带的websocket,会存在线程不释放导致宕机的情况。因此不建议使用东方通自带的websocket,而是使用老socketio方案。
1)禁用容器websocket方案
信创版FineReport11.0.21/FineBI6.0.15及以上版本开始,默认禁用容器websocket方案,无需手动处理
信创版FineReport11.0.21/FineBI6.0.15之前版本,请手动在fine_conf_entity表里添加id为WebSocketConfig.useJavaxWebSocket、value为false的字段,并重启工程生效
2)手动进行websocket配置
用户需要手动对外开放websocket端口,进行websocket配置,详情请参见:
场景 | 配置方法 |
---|---|
单机环境配置 WebSocket 端口 | 单机配置WebSocket端口 |
集群环境配置 WebSocket 端口 | 集群配置WebSocket端口 |
HTTPS 环境配置 Websocket 端口 | HTTPS环境配置WebSocket |
仅对外开放一个端口 | 不额外给WebSocket对外开放端口 |
3.3 启动报错:类冲突
问题描述:
TongWeb 6.1.5.7 版本安装工程后,工程无法启动,%Tongweb%/logs存在类似报错:
javax.validation.spi.ConfigurationState.getClockProvider()Ljavax/validation/ClockProvider;类冲突
原因分析:
TongWeb版本过低,自带的validation-api.jar与帆软应用的jar包出现冲突
解决方案:
1)关闭TongWeb,删除tongweb/lib/endorsed目录下的validation-api.jar。
2)下载并上传至tongweb/lib/endorsed目录下:
validation-api-2.0.0.Final.jar
3)重启TongWeb,再尝试部署即可。
3.4 iframe无法访问
问题描述:
TongWeb 安装工程后,工程可正常访问,但iframe访问失败,如下图所示:
排查方案:
1)请优先参考文档排查是否放开相关限制:iframe集成模板报错
2)TongWeb7在 external.vmoptions 中设置了相关参数:-Dtongweb.X_Frame_Options,请检查参数值是否允许网页被 Frame。
可设置参数值如下:
DENY:浏览器拒绝当前页面加载任何 frame 页面
SAMEORIGIN:frame 页面的地址只能为同源域名下的页面
ALLOW-FROM:允许 frame 加载的页面地址。