将正在运行的项目war包重命名后再恢复原名造成问题的疑问

事情经过:项目升级之前我打算将tomcat的webapps目录下的war在本机备份一下,由于本机的桌面上我已经将本地项目打包成war包(和服务器上项目名一样),为了区分,我将服务器上的项目名重命名为:项目名+bak,然后将重命名后的项目传到本地,传完之后,我刷新服务器webapps目录,发现我虽然只改了war名字,但是与war对于的文件夹名字也变成了和我重命名的名字一样,我觉得不对,将就war包的名字和文件夹的名字赶紧重命名回去。我本来以为只会影响到刚才那一分钟左右,但是随后发现在线用户上使用不了,具体报错信息是半个月前的项目版本才会出现报错信息(中间也更新过好几次),在这期间做过的与报错信息相关的变更是将表从A库移到B,最近几次版本都是从B库进行查找这张表,但是实际报错却是程序从A库在查询表,这说明程序很可能回到了很早以前的版本。最后再次将最新在测试环境测试无误的程序进行打包重新上传的时候,发现tomcat启动总是报解压war错误,最后将tomcat的work目录删除,再次启动tomcat,一切正常。
解决办法参考博客:
http://blog.csdn.net/zl544434558/article/details/47843695


现在问题是解决了,但是由此产生的我的几个疑问:
1、为什么将war重命名,与war包对应的项目也会自动重命名?
2、为什么将war和文件夹重命名后,系统没有恢复正常,而且根据报错信息应该是项目恢复到很久以前的某个版本(根据报错信息没法判断项目是不是恢复到了最第一个版本),中间也进行过多次更新,为什么版本的内容会变?为什么会恢复到中间的某个版本而不是上一次版本?
3、为什么将tomcat停止,将本地最新war上传,一直报解压war错误,而将tomcat的work目录已删除,问题就解决?


吃一堑长一智,在此次事件中受到的教训:
1、正在线上运行的项目,在没有挂维护页面且非紧急情况下,不得更改项目相关的任何文件和数据,杜绝此类问题再次发生。
2、线上项目更新前,必须在测试环境进行严格验证,更新到生产环境后,在未对外部开放前也要进行相应测试,拒绝盲目自信。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值