手把手教你用Tomcat部署war包(进阶教程)

公司新项目开发完,打成war文件,接下来就是部署到服务器上。作为后端开发,最常用的容器就是Tomcat了。很多人第一次操作时容易卡在部署环节,其实只要步骤清楚,几分钟就能搞定。

准备阶段:确认环境

先确保你的服务器已经安装好Java和Tomcat。打开终端输入java -version,能看到版本号就说明JDK没问题。然后启动Tomcat,访问http://localhost:8080,如果看到猫的页面,说明Tomcat运行正常。

获取war包并放到webapps目录

把开发团队给你的xxx.war文件复制到Tomcat安装目录下的webapps文件夹里。比如你放在/opt/tomcat/webapps/下面,名字叫myapp.war

只要war包一放进去,Tomcat会自动解压它,生成一个同名的文件夹,比如myapp。这个过程可能需要几秒到几十秒,取决于war包大小。

访问应用看看效果

等解压完成后,在浏览器输入http://localhost:8080/myapp,如果能打开页面,说明部署成功了。这时候你可能会遇到404,别急,检查一下war包是不是完整,或者看下控制台有没有报错日志。

手动部署方式(可选)

有时候不想自动部署,可以关掉自动扫描。修改conf/server.xml里的<Host>标签,加上deployOnStartup="false" autoDeploy="false"

然后再通过Manager App来上传war包。登录Tomcat Manager页面,找到“War file to deploy”选项,选择本地的war文件上传即可。

常见问题处理

如果页面打不开,第一件事是去看logs/catalina.out日志文件。经常遇到的问题有:

  • JDK版本不匹配,比如项目用Java 17编译,但服务器只装了Java 8
  • 数据库连接配置错了,war包虽然跑起来了,但连不上数据源
  • 端口被占用,改conf/server.xml里的Connector端口就行

改完代码重新部署

开发改了个bug,又发了一个新版war包。直接替换掉原来的war文件,Tomcat会自动重新解压加载。不过建议先把旧的目录和war都删干净,避免缓存问题。

也可以在Manager页面先“Undeploy”,再重新上传,这样更干净。

小技巧:用脚本快速部署

如果你经常要部署,写个shell脚本省事。比如:

#!/bin/bash
TOMCAT=/opt/tomcat
APP=myapp

rm -rf $TOMCAT/webapps/$APP* 
cp myapp-new.war $TOMCAT/webapps/myapp.war
$TOMCAT/bin/startup.sh

以后只需要运行这个脚本,自动清理、复制、启动,效率高很多。

部署war包这事儿,刚开始觉得神秘,操作几次就发现也就那么回事。关键是多动手,遇到报错别慌,看日志一步步排查,很快就能上手。