Appearance
TongWeb (东方通中间件) 部署说明
一、说明
- 东方通中间件,类似tomcat。
- 提供了网页部署的功能,通过war包直接部署。
- 收费购买后,有技术支持。
二、安装东方通中间件
- 把安装包拷贝到服务器。
- 解压安装包。
- 授权文件:把对方提供的有效授权文件放到安装目录下,license.dat
- 启动项目:命令行进入bin目录,执行 startserver.sh 或 startservernohup.sh
- 打开浏览器,输入 http://localhost:9060/console/ 启动成功。
三、东方通帮助文档
- 相关文档,在安装目录下的/doc/目录下。
- 上图中 [001_TongWeb V7.0 快速使用手册_7049_M3A01.pdf] 文档,是基本使用方法文档。
四、登录控制台,部署应用
4.1 登录控制台
- 打开浏览器,输入 http://localhost:9060/console/ 启动成功。
- 默认账号密码:thanos/thanos123.com
- 首次登录必须修改密码,不能和原密码一样。
4.2 部署应用
- 点击左侧菜单栏中的“应用管理”,然后点击“部署应用”。
- 把打包好的war包上传到服务器。
- 文件位置:本机;部署文件:选择上传的war包。
- 点击“开始部署”。
- 填写相关表单(可修改上下文,如下图:/server/),然后点击“下一步”。
- 选择虚拟主机(选择默认的虚拟主机即可),然后点击“下一步”。
- 等待部署完成,回到应用列表。
- 默认端口:8088,访问:http://[localhost:8088/IP]/上下文
- 如:http://localhost:8088/dashuserver/
五、修改部署文件,更新部署
5.1 部署目录
- 刚才项目的部署目录:TongWeb7安装目录/deployment/项目名Server/
- 如下图所示:TongWeb7/deployment/wfjqmyServer/
5.2 修改配置文件
- Springboot相关的配置文件,在/项目目录/WEB-INF/classes/目录下。
- 如:application.yml、xss.ignore等。
5.3 如需重新部署war包,可在本地解压war包,把需要拷贝的文件,直接拷贝至以上目录。
5.4 点击“重部署”按钮,更新部署。
六、错误日志
- 错误日志,在/TongWeb7安装目录/logs/server.log
七、常见问题
- 7.1 上传图片失败(缺少图片压缩使用的 jai-imageio-core-1.4.0.jar 包)
- 原因:TongWeb对jar包的安全性做了限制。
- 解决方法:把jar包放到[/TongWeb7安装目录/lib/]目录下。
- 然后重启TongWeb服务。
- 进入bin目录,先关闭服务 ./stopserver.sh
- 再开启服务 startservernohup.sh
说明
- 其他缺少jar包情况,可同上处理。
- 7.2 中文乱码问题
注意
- 东方通中间件,默认编码都是GBK,需要修改为UTF-8
- 共4处需要修改:
- 第一处,【WEB容器配置 - 容器配置】,如下图所示,改好后需要重启东方通服务。
停止项目:命令行进入bin目录,执行 ./stopserver.sh
启动项目:命令行进入bin目录,执行 startservernohup.sh
- 第二、三、四处,【WEB容器配置 - HTTP通道管理】,如下图所示,无需重启。
【system-http-listener】通道的编码格式改为UTF-8
【tong-http-listener】通道的编码格式改为UTF-8
【ejb-server-listener】通道的编码格式改为UTF-8
- 7.3 导入Excel或上传文件导致TongWeb卡顿问题
- 问题描述:
上传文件/导入Excel,使用@AutoOperateLog注解,会导致TongWeb卡顿。
- 分析原因:
记录操作日志的切面方法(AutoOperateLogAspect.java)中,会记录body,而上传文件时,会将整个文件全部读入内存,导致TongWeb卡顿。
- 解决方法:
判断请求参数:
- 修改代码:
修改前:
java
public class AutoOperateLogAspect {
// 省略其他代码...
public Object around(ProceedingJoinPoint joinPoint, AutoOperateLog autoOperateLog) throws Throwable {
// 省略其他代码...
content.set("body", JSONUtil.toJsonStr(joinPoint.getArgs())); // 这一行是修改前的代码
// 省略其他代码...
}
}
修改后:
java
public class AutoOperateLogAspect {
// 省略其他代码...
public Object around(ProceedingJoinPoint joinPoint, AutoOperateLog autoOperateLog) throws Throwable {
// 省略其他代码...
// 用下面这些代码替换掉上面的代码
// 判断传参数中是否有上传文件,如果有,则不记录body参数
boolean hasFile = false;
for (Object arg : joinPoint.getArgs()) {
if (arg instanceof MultipartRequest) {
// 包含上传文件,不处理body参数
hasFile = true;
}
}
if (hasFile) {
content.set("body", "上传文件,不记录body参数");
} else {
content.set("body", JSONUtil.toJsonStr(joinPoint.getArgs()));
}
// 省略其他代码...
}
}
注意
- 框架 v1.1.16 版本已修复此问题,低于此版本的用户需要修复。