# 升级WAR包

本文主要介绍如何升级项目中的war包,分为Linux系统升级war包和windows系统升级war包。

升级war包的主要步骤为:

升级前必读

由于升级过程中系统可能会对表结构或数据进行升级,为了升级过程更稳定,建议先在测试环境进行升级测试,并对生产环境系统以及数据库的默认数据源进行完整备份

替换WAR包并重启tomcat后,系统会先显示升级确认页面(当新的WAR包版本号的前2位与老版本有变化时才会提示确认页面,第三个版本号变化属于BUG修复并不会提示确认),用户需确认升级版本号是否正确,并输入管理员账号密码后才能开始升级。

升级确认

# Linux系统升级war包

正常升级war包的时候,应该使用tomcat启动的Linux用户登录,比如succez用户,一般不使用root登录,但是在实际的工作中,使用root用户的情况比较多,所以本文的Linux系统升级war包部分,以root用户为例子升级war包。

# 停止tomcat

  1. 查看tomcat进程

    TIP

    一台Linux服务器可能会存在多个tomcat进程,需要在查询后记录以下两个内容:

    1. tomcat进程路径
    2. tomcat进程PID

    通过进程路径确认对应的产品目录,确认是否操作此目录的产品项目,通过PID验证、结束进程。

    具体查看进程的步骤如下:

    • 执行命令查看tomcat进程 ps -ef | grep tomcat , 控制台会输出tomcat进程信息
    • 根据此进程提供的信息可知,系统中运行了一个tomcat进程,tomcat的启动用户为succez用户,进程PID为1674
    • 根据 -Dcatalina.base=/succezsoft/tomcat 可知此进程的tomcat路径为 /succezsoft/tomcat
    [root@oracle19c ~]# ps -ef | grep tomcat
    succez     1674      1 45 14:00 pts/0    00:00:46 /succezsoft/jdk/bin/java -Djava.util.logging.config.file=/succezsoft/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Dsucc.workdir=/succezsoft/workdir -Djava.net.preferIPv4Stack=true -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -DLANG=zh_CN.UTF-8 -server -Xmx1g -Xms1g -XX:+UseG1GC -XX:+AlwaysPreTouch -XX:+ScavengeBeforeFullGC -XX:+DisableExplicitGC -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH=true -Dorg.apache.catalina.connector.CoyoteAdapter.ALLOW_BACKSLASH=true -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /succezsoft/tomcat/bin/bootstrap.jar:/succezsoft/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/succezsoft/tomcat -Dcatalina.home=/succezsoft/tomcat -Djava.io.tmpdir=/succezsoft/tomcat/temp org.apache.catalina.startup.Bootstrap start
    root       1822   1613  0 14:02 pts/0    00:00:00 grep --color=auto tomcat
    
  2. 进入tomcat安装目录的bin目录,执行停止程序

    cd /succezsoft/tomcat/bin
    ./shutdown.sh
    

    等待停止程序执行结束后,再次查看tomcat进程 ps -ef | grep tomcat,如果相同PID的进程依旧存在,可以使用kill命令结束进程 kill -9 进程PID

    安全告知

    不要一开始就直接使用kill命令,一定先尝试./shutdown.sh之后,无法结束进程,再使用kill命令。

    直接kill进程可能导致数据丢失。

  3. 清理work目录

    进入work目录,删除其中的文件

    cd /succezsoft/tomcat/work
    ls
    rm -rf Catalina
    

    安全告知

    删除之前一定要确认被删除文件的路径是否有错,如果删除了其他文件可能会导致系统运行错误。

    此步骤删除的文件是tomcat/work目录下的Catalina文件夹及其中的文件。

# 替换war包

  1. 备份旧war包,删除旧war包已解压的的目录

    mkdir /succezsoft/tomcat/warbak
    cd /succezsoft/tomcat/webapps
    mv ROOT.war /succezsoft/tomcat/warbak
    rm -rf ROOT
    
    • 第一行命令是创建备份文件夹
    • 第二行命令是进入webapps目录
    • 第三行命令是将旧war包移动到备份文件夹内
    • 第四行命令是删除旧war包的解压文件

    具体的旧war包名需要去webapps目录查看,上面的步骤仅作为参考,有时候可能会有两个war包或者包名非ROOT.war,需要根据项目情况进行操作。

  2. 上传新的升级war包,并移动到webapps目录

    根据项目情况选择上传方式,可以使用XFTP等工具上传,假设上传的目录为/root,升级war包名为ROOT.war,将升级war包移动到/succezsoft/tomcat/webapps目录。

    mv /root/ROOT.war /succezsoft/tomcat/webapps
    

    如果升级war包名与旧war包名不一致,要将升级war包名修改成旧war包名,例如旧包名为succezbi.war的时候要先进行如下操作。

    mv /succezsoft/tomcat/webapps/ROOT.war /succezsoft/tomcat/webapps/succezbi.war
    

    更换了新war包之后,要将新war包的权限用户修改成tomcat启动用户。

    chown succez:succez /succezsoft/tomcat/webapps/ROOT.war
    

# 启动tomcat

  1. 执行启动程序启动tomcat

    先执行命令 su succez 切换到上文说到的tomcat启动用户,再执行下面的命令启动tomcat。

    cd /succezsoft/tomcat/bin
    ./startup.sh
    
  2. 再次查看tomcat进程,主要看进程是否正常存活 ps -ef | grep tomcat

  3. 如果没有看到新的tomcat进程,就进入logs目录,查看日志信息

    cd /succezsoft/tomcat/logs
    tail -100f catalina.out
    

    上面的命令是跟踪文件中最后100行的信息,100也可以替换成更大的数字来查看更多的日志行数,看日志中的报错信息,判断无法启动的原因,排查错误之后再次重复上面的步骤启动tomcat。

    如果要退出日志查看可以按住键盘上的 Ctrl + C

# Windows系统升级war包

本文的Windows系统升级war包指的是在DEMO体验版中升级,如果是自己手动部署的环境要升级war包,步骤也是一样的,只是需要根据自己部署的目录做出调整。

本文演示的步骤中:

  • DEMO体验版目录:D:\SuccBI-standalone-4.1.0
  • DEMO体验版tomcat目录:D:\SuccBI-standalone-4.1.0\server\tomcat

# 停止tomcat

进入DEMO体验版目录中,双击shutdown.bat执行关闭程序,看到Tomcat shutdown completePress any key to continue . . . 说明tomcat程序已经安全关闭。

DEMO体验版关闭tomcat程序

这个时候就可以关闭弹出的tomcat和shutdown进程窗口了。

# 替换war包

  1. 进入DEMO体验版tomcat目录,创建bak文件夹

  2. 进入tomcat目录下的webapps文件夹,删除旧war包解压后的文件夹,并将旧war包移动到bak文件夹内(右键剪切移动)

    DEMO体验版备份-删除解压文件

  3. 将升级war包复制到tomcat目录下的webapps文件夹内

  4. 进入tomcat目录下的work文件夹内,删除Catalina文件夹

    DEMO体验版清理work目录

# 启动tomcat

进入DEMO体验版目录中,双击 startup.bat,会弹出tomcat的程序运行窗口,等待一段时间,看到 Server startup in XXXX ms,说明tomcat启动成功。

DEMO体验版启动tomcat

如果程序框闪退或者报错无法继续执行,可以去DEMO体验版tomcat目录下的logs文件夹内,查看 catalina.out文件,分析日志中显示的问题,探查启动失败的原因,排查错误后再次启动。

# 验证

完成了如上升级war包的操作后(Linux/Windows),还需要对web进行一些简单测试。

  1. 查看版本号,确认已升级。查看系统版本号详见查看系统信息
  2. 简单功能测试。对平时常用的部分测试使用,如果功能完好,没有弹出报错窗口,那就代表本次的升级war包操作成功。
  3. 包版本回退。如果升级了war包之后出现问题,项目无法使用,可以选择将war包回退到之前的版本。把之前备份的war包重新换回去,步骤与上述升级war包一致,在紧急情况下重新投入使用,等待新war包中出现的问题给出解决方案再升级。
是否有帮助?
0条评论
评论