☰
TongWeb 7.0.4.9企业版安装部署全流程指南
2026/10/1 5:42:26 网站建设 项目流程

1. 先摸清TongWeb的定位:这个中间件适合哪些场景、7.0.4.9值不值得装

如果你接到过“在Linux上装一套TongWeb 7.0.4.9企业版”这种任务,多半是项目里要用国产中间件跑Java Web应用。TongWeb是东方通的产品,和Tomcat、WebLogic、WebSphere算同类东西,都是Java应用服务器,但TongWeb在企业级市场里的角色更偏“完整商业解决方案”:自带管理控制台、集群管理、集中运维、国密算法支持,还有一套比较严格的授权体系。国内政企、金融、运营商、能源这类项目里非常常见,很多系统集成商交付时指定的中间件就是它。

我这些年帮人装过不少次TongWeb,先说一个经常被忽视的点:TongWeb和Tomcat的“手感”有点像,但千万别拿Tomcat的惯性思维去套。Tomcat是开源免费的,解压就能跑,顶多配置下端口;TongWeb企业版则牵扯到授权文件、产品激活、控制台登录,安装流程多出来好几步。第一次装的人往往卡在三个地方:不知道授权文件放哪、不知道默认管理账号是什么、不确定启动日志里哪些报错能忽略哪些不能。这篇文章就是把我反复踩过、趟过的路径整理成一条能直接照做的流程,从解压、授权、启动,到控制台登录、部署HTML项目,再到排错,一次讲完。

顺便说说7.0.4.9这个版本。7.0是主版本系列,4.9属于补丁版。企业版和社区版的差异不在功能列表上有多悬殊,主要是授权机制、技术支持、组件完整度。很多项目招标或者等保测评里把版本号写得死死的,那你就老实装这个版本,别自己私自升到更新的补丁版,否则验收对不上版本号,后面扯皮是自己找罪受。如果项目里没限定这么死,那我建议装到该系列下最新的补丁版,毕竟补丁版修了一堆已知问题,同样部署环境,出问题的概率明显低。

2. 安装前必须确认的三件事:JDK版本、授权文件、安装包来源

2.1 先确认JDK:版本不对,后面全是坑

TongWeb 7依赖JDK 1.8,一般建议用8u202之后的版本。装之前先在自己机器上敲一下:

java -version echo $JAVA_HOME which java

如果机器上没装Java,或者默认Java版本不对,先去装一个JDK 8。CentOS、RHEL这类系统可以直接用OpenJDK:

sudo yum install -y java-1.8.0-openjdk

但我个人建议,生产环境最好单独装一个固定的JDK 8发行版,然后把JAVA_HOME写清楚,不要让TongWeb去猜系统默认的Java。原因很简单:TongWeb启动脚本会优先读JAVA_HOME环境变量,你如果不显式指定,它可能找到机器上另一个版本的JDK,版本不对直接启动失败,而且报错信息还不太直观。我碰到过一次,机器上同时装了JDK 8和JDK 17,TongWeb启动的时候捡到17,日志里一堆UnsupportedClassVersionError,折腾半天才反应过来是JDK版本问题。

2.2 企业版授权文件:这个才是“企业版”和“社区版”的分水岭

TongWeb企业版安装包本身解压出来就能跑,但能不能长期正常用,全靠授权文件。授权文件一般是厂商交付时单独给的,命名可能是license.dat、license.xml,不同批次可能不一样。它的核心作用是产品激活,有的授权绑定服务器网卡MAC地址,有的绑定机器指纹,还有的绑定申请授权时填写的IP或主机名。

所以安装前,你最好先确认三件事:

  • 授权文件解压出来没有、文件完整不完整;
  • 授权文件绑定的服务器信息和你要装的这台机器是否一致,尤其是MAC地址,虚拟化环境经常因为换了虚拟网卡导致授权失效;
  • 当前系统时间是否正确,时区和实际时间差太离谱的话,授权校验也会失败。

我见过最无语的情况是,负责申请授权的同事拿A机信息申请了授权,结果装的时候装到B机上,启动一模一样的报错。授权文件这个东西是绑硬件的,千万别指望“复制过来就行”。

2.3 安装包来源和完整性校验

安装包从哪里来,看着是个小事,实际影响很大。有的下载站上的包打包不完整,解压到一半报错,或者里面缺了关键lib目录,启动直接失败。正规的做法是拿到厂商给的包之后,先看有没有附带MD5或SHA256校验值:

md5sum TongWeb-7.0.4.9.tar.gz sha256sum TongWeb-7.0.4.9.tar.gz

校验值对得上再往下走,对不上先别解压,回去找包。这一步能省掉很多后续排错,尤其是那种解压时“部分文件损坏”的暗病,校验值一眼就能看出来。

2.4 运行用户和目录规划:别用root跑中间件

TongWeb官方交付文档里一般都会提醒,建议使用专用系统用户运行。做运维久了你会发现,用root跑Web中间件是给自己埋雷:授权文件权限、日志文件归属、可能面临的提权风险,全是麻烦。我习惯的做法是单独建一个用户:

sudo useradd -m -s /bin/bash tongweb

安装目录建议放/opt/tongweb,不要丢在/root或者某个用户家目录下,否则后面其他同事接手时路径猜都猜不到。目录规划有一个原则:安装目录、部署目录、日志目录尽量保持默认结构,减少自定义项。TongWeb默认结构里deploy放应用、logs放日志,如果你非得把它们挪到别的地方,不是不行,但要同步改配置,改滚动日志、权限、备份策略的时候都得跟着改,复杂度上去了,收益很小。

3. 实际安装动作:解压、授权、启动三步走

3.1 解压安装包与中文乱码问题

TongWeb的安装包常见两种格式:tar.gz和zip。如果是tar.gz包,一条命令搞定:

sudo mkdir -p /opt/tongweb sudo tar -zxvf TongWeb-7.0.4.9.tar.gz -C /opt/tongweb

解压完看一下目录结构,正常情况下会得到一个类似/opt/tongweb/TongWeb的目录,里面包含bin、conf、deploy、lib、license、logs、work这些子目录。各部分干什么用的,我列个表:

目录作用
bin启动、停止脚本,比如 startserver.sh、stopserver.sh
conf核心配置文件,server.xml、tongweb.xml 等
deploy应用发布目录,war包或静态目录放这里
lib运行时依赖jar包,第三方JDBC驱动也扔这里
license授权文件目录,放license.dat等
logs日志输出目录
work运行时编译缓存,应用发布时自动生成

如果你拿到的是zip包,用unzip解压:

sudo unzip TongWeb-7.0.4.9.zip -d /opt/tongweb

很多人在这一步遇到过中文文件名乱码的问题,尤其当这个zip包是在Windows环境打出来的,文件内部中文名用了GBK编码,Linux上默认按UTF-8解压,于是文件名全部变成乱码。这不是TongWeb的问题,是zip压缩包编码的老问题。解决办法是让unzip显式指定编码:

sudo unzip -O GBK TongWeb-7.0.4.9.zip -d /opt/tongweb

如果-O参数你的unzip版本不支持,也可以用unar或者7z处理。说实话,TongWeb安装包里一般不会有太多中文文件名,但偶发情况下文档、样例里会带,所以这个命令建议收藏。

3.2 部署License授权文件

解压完成后,把厂商给的授权文件放到license目录下:

sudo cp license.dat /opt/tongweb/TongWeb/license/

然后修正目录权限,让刚才创建的专用用户能正常读写:

sudo chown -R tongweb:tongweb /opt/tongweb

这里有个细节:授权文件能不能被TongWeb读到,取决于启动用户对license目录有没有读权限。你如果前面图省事用root解压,后面用tongweb用户启动,授权文件权限不对,启动时照样报License错误。先统一chown一下,能省掉很多多余的排查。

3.3 配置JAVA_HOME,启动TongWeb

启动前把JAVA_HOME写清楚。我习惯在启动脚本或者/etc/profile里加:

export JAVA_HOME=/usr/local/java/jdk1.8.0_202 export PATH=$JAVA_HOME/bin:$PATH

然后启动:

cd /opt/tongweb/TongWeb/bin sudo -u tongweb ./startserver.sh

看到脚本执行完,别急着开心,启动脚本返回不等于服务起来了。要让TongWeb完整启动,静态文件服务和控制台服务都在监听,才算是真正好了。TongWeb启动过程中要初始化一堆组件,首次启动可能稍慢,多等个十几秒再验证。

停止服务对应的命令是:

cd /opt/tongweb/TongWeb/bin sudo -u tongweb ./stopserver.sh

3.4 首启验证:日志、进程、端口三连查

TongWeb启动后,我会从三个层面验证它是否真的起来了。

第一是看日志。TongWeb的主日志在logs/server.log,首次启动时重点看有没有Server startup completed这类字样,或者有没有ERROR、Exception级别的内容。有些组件初始化告警是正常的业务告警,不致命,但如果是FATAL或者license is invalid,那还是要重视。

tail -f /opt/tongweb/TongWeb/logs/server.log

第二是查进程:

ps -ef | grep TongWeb

如果有Java进程在跑,说明启动脚本执行成功了。

第三是查端口。TongWeb 7默认HTTP端口是8080,管理控制台也通过这个端口对外,确认监听状态:

ss -tlnp | grep 8080

然后本机做个HTTP探测:

curl -I http://127.0.0.1:8080/console

如果返回HTTP 200,说明控制台已经可以访问了。这里我要提醒一下:如果端口不通,先别怀疑TongWeb,用ss确认到底绑定在哪个端口上;不同批次的安装包,默认端口可能因为external.properties配置文件被改过。查看端口信息最靠谱的还是这个文件,其次是conf/server.xml。

4. 启动后第一件事:管理控制台登录与基础设置

4.1 控制台地址和默认账号

TongWeb安装好后,浏览器打开:

http://服务器IP:8080/console

就能看到管理控制台的登录页。登录账号这边有个很重要的经验:不同交付批次、不同基础版本,默认账号不一定一样。我接触过的大部分TongWeb 7交付批次,默认管理员是thanos,默认口令是thanos123.com,但你的安装包如果不一致,去厂商交付资料里找,别硬试,输错次数多了可能触发锁定策略。

提示:拿到控制台权限后的第一件事,永远是修改默认密码。中间件管理后台一旦被裸奔的内网扫描器发现,攻击者可以直接部署恶意应用,后果比服务器被拿SSH还严重。

4.2 控制台里常用的几类配置

控制台登录后的操作,不同项目差异很大,但有几类配置是高频的:

端口调整。如果业务对端口有要求,比如限制8080不能对外,可以在控制台或conf/external.properties里改HTTP端口,改完重启生效。生产环境我一般建议把控制台和应用端口分开管理,实在分不开,至少给控制台加上访问IP白名单的Java层过滤器,这属于安全加固范畴,但TongWeb控制台本身也支持这类配置。

JVM参数。内存、GC参数影响TongWeb对高并发业务的支持。常见的是在启动脚本里设置JAVA_OPTS,或者通过控制台的JVM配置入口修改。一个低配机器上默认堆内存可能偏小,并发一上来就频繁Full GC。我的基线建议是:

export JAVA_OPTS="-Xms1024m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"

具体值要结合机器内存和应用负载,别盲目给满,给满了服务没起来,别怪我没提醒,物理内存先得够。

日志级别。平时用INFO,出现问题想深挖时可以临时调成DEBUG,排查完再调回来。生产环境长期开DEBUG,日志量会爆炸式增长,磁盘空间和性能都会受影响。

4.3 控制台打不开的排查路径

实际场景里,服务起来了、8080端口也监听着,但浏览器就是访问不了控制台。这种问题九成出在网络层,跟TongWeb本身没关系。快速排查顺序是这样的:

  1. 本机执行curl -I http://127.0.0.1:8080/console,通说明TongWeb没问题;
  2. 从其他机器telnet 服务器IP 8080,不通说明防火墙或安全组拦截;
  3. 检查Linux防火墙:
sudo firewall-cmd --list-ports sudo firewall-cmd --add-port=8080/tcp --permanent sudo firewall-cmd --reload
  1. 如果在云上,还要去安全组控制台放行对应端口。

最怕的是本机通、外网不通,然后你去翻TongWeb日志,翻了半天发现是白折腾。

5. 在TongWeb上部署HTML项目的两种姿势

很多项目用TongWeb并不跑复杂Java应用,就是部署一个静态HTML站点、一个前端打包出来的dist目录,或者一个简单的报表页面。这部分我单独拎出来讲,因为实际遇到的人太多了,相关搜索里“TongWeb部署html项目”一直居高不下,说明这是高频需求。

5.1 方式一:WAR包部署,适合正式发布和版本管理

WAR包方式是Java中间件最标准的部署形态。把HTML项目打成WAR包,不仅TongWeb能部署,以后迁移到Tomcat、WebLogic也都是同一套逻辑。

假设你的项目目录长这样:

mysite/ ├── index.html ├── css/ │ └── style.css ├── js/ │ └── app.js └── images/

进入该目录,用JDK自带的jar命令打包:

cd mysite jar -cvf mysite.war .

然后把war包放到TongWeb的deploy目录下:

cp mysite.war /opt/tongweb/TongWeb/deploy/

TongWeb会检测到新的war包并自动发布。访问路径就是:

http://IP:8080/mysite/

发布这件事从控制台操作更容易观察状态:【应用管理】里能看到已部署的应用列表和状态。如果发布失败,控制台也会给出错误信息,比看日志更直接。

这里有个细节:纯静态HTML项目里没有WEB-INF/web.xml,很多人担心TongWeb不认。实际上TongWeb对静态目录的部署是很宽容的,没有web.xml的项目也能正常部署,只要目录里有index.html这类默认页面文件。

5.2 方式二:目录部署和根路径映射,适合静态站点快速上线

如果项目本身就是一个纯静态站点,不涉及Java编译,直接放到deploy目录下也一样能跑,不需要打出war包:

mkdir -p /opt/tongweb/TongWeb/deploy/mysite cp -r /data/wwwroot/mysite/* /opt/tongweb/TongWeb/deploy/mysite/

访问方式和war包部署一样,都是走/mysite/。

如果想直接通过根路径访问,就是把站点文件放到默认根应用deploy/ROOT下:

cp -r /data/wwwroot/mysite/* /opt/tongweb/TongWeb/deploy/ROOT/

这样访问http://IP:8080/就是你的站点。

另外一种更灵活的做法是修改conf/server.xml,增加一个Context映射,把外部静态目录直接映射到指定访问路径,比如:

<Context path="/htmlsite" docBase="/data/wwwroot/htmlsite" reloadable="true"/>

改完配置后重启TongWeb生效。这种方式适合应用文件不想挪到TongWeb部署目录的项目,比如前端团队自己有发布目录,TongWeb只是做个映射代理。

5.3 部署后的访问验证

部署完别急着交付,按这三个维度把基础验证跑一遍:

  • 本地curl -I http://127.0.0.1:8080/项目名/看响应码;
  • 浏览器访问,确认页面、CSS、JS、图片都能正常加载,按F12看控制台有没有404的资源路径错误;
  • 去TongWeb控制台看应用状态是不是Started。

静态项目部署经常出现的诡异问题是:改了文件,浏览器里看到的还是旧页面。这不是TongWeb部署失败,而是浏览器缓存。开发调试时建议强制刷新或者开无痕窗口,省得自己和前端团队来回扯皮。

6. 安装过程中常见的坑与排查思路

6.1 启动脚本找不到Java

症状:执行./startserver.sh后,终端输出类似Unable to locate java或者启动进程一闪即逝。

排查路径:先确认当前用户环境变量里有没有JAVA_HOME。用sudo -u tongweb env | grep JAVA看看,因为切用户后环境变量可能和root不一样。然后确认启动脚本对JAVA_HOME的读取逻辑。有些版本要求你自己在setenv.sh里写死JAVA_HOME,我见过在脚本外配置了Java路径结果启动不生效的情况。

解决:在启动脚本同级的setenv.sh(如果存在)或~/.bashrc里显式加上:

export JAVA_HOME=/usr/local/java/jdk1.8.0_202

然后重新登录或source一下再启动。

6.2 License授权校验失败

症状:日志里出现license is invalid、license expired、License not found之类的关键词,TongWeb启动后HTTP服务没起来或者起来后过一段时间被自动停掉。

排查路径:一步步排除:

  1. 授权文件路径对不对?确认在/opt/tongweb/TongWeb/license/下;
  2. 授权文件属主权限对不对?ls -l看一眼;
  3. 授权绑定的服务器信息是否和当前机器一致?用ip link看MAC地址;
  4. 系统时间是否准确?date确认,时间偏差大了授权校验必挂。

这个坑在虚拟化环境里极其常见:虚拟机迁移、克隆之后网卡MAC变了,授权直接失效。遇到这种情况,别硬调,找厂商重新申请授权或者走授权变更流程才是正路。

6.3 端口被占用导致启动失败

症状:启动日志里出现Address already in use,或者8080端口被一个未知进程占着,TongWeb启动后访问不到控制台。

排查:

ss -tlnp | grep 8080 lsof -i :8080

看到占用进程后,如果确实用不到,就Kill掉,或者给TongWeb换一个端口。生产环境经常出现别的中间件或nginx占着8080不放的情况,别硬刚,换端口往往更省事。

6.4 内存不足导致启动失败或运行中进程被系统杀死

症状:启动阶段日志中出现OutOfMemoryError,或者进程运行一段时间后神秘消失,查dmesg发现是OOM Killer干的。

排查:先看机器物理内存:

free -h

确认内存余量之后,调大或者调小JVM堆参数。我给一个保守的起步配置,4G内存的机器上跑TongWeb,可以这么设:

export JAVA_OPTS="-Xms512m -Xmx1024m"

低于512M的堆跑TongWeb控制台都很勉强,不是不能用,是性能会很难看。

6.5 外部访问不了,本机却正常

症状:服务器上curl 127.0.0.1:8080有响应,其他机器访问不通。

排查路径:

  1. 防火墙没有放行端口:
sudo firewall-cmd --add-port=8080/tcp --permanent sudo firewall-cmd --reload
  1. 云厂商安全组没有添加规则;
  2. 如果服务器有多个网卡,TongWeb的Connector可能只绑定了内网IP,检查conf/server.xml里Connector的address属性,我通常会显式绑定所有可用地址或者特定的对外地址,避免出现“服务在跑,但就是访问不到”的迷惑现象。

6.6 日志怎么看最省力

TongWeb的日志文件都在logs目录下,一般分成几类:

  • server.log:主运行日志,启动、部署、框架信息都在这;
  • console.log:标准输出日志,可以理解为Java程序往控制台打印的内容;
  • 应用自身的日志:可能在deploy对应应用目录下,或者随应用配置输出到其他位置。

排查问题的顺序建议是:先看控制台日志有没有明显异常,再看server.log搜关键词,最后才去看应用自身的输出。很多人一上来就翻应用日志,绕了一大圈发现是中间件层的问题,白费劲。

最后说一点个人感受。TongWeb 7.0.4.9的安装本身并不复杂,但因为它带了一套商业产品的授权流程和更完整的管理体系,步骤比Tomcat多,坑也比Tomcat多一些。装得多了你会发现,绝大多数问题都出在安装前的准备没做好,而不是安装过程中的操作错误。JDK版本、授权文件、运行用户、端口占用,这四件事如果能在动手前花五分钟确认清楚,后面基本是一路顺风的节奏。希望这篇流程和经验总结,能把后来的人从“反复装、反复挂”的循环里拉出来。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询