一个让人超级坑爹的tomcat机制

前言
前些日子赶上了阿里云的豪车,勒紧裤腰买了两年的阿里云主机,买完后很是兴奋,赶紧上线部署一个个人博客玩玩,有刚需的可以走链接:(有优惠)* https://promotion.aliyun.com/ntms/act/group/team.html?group=xubxmgq0Vv

本次采用的博客系统是GitHub上名噪一时的[] B3log开源博客,后端采用的是Java框架,对新人十分友好,上传war包到tomcat目录下之后,如果tomcat运行时会直接解压,然后你就可以开始访问了。

坑爹的遭遇

当我部署完我的开源博客后,查看了下我的主机的硬盘大小,只有40G的SSD,心里想着,这么小,能省一点空间是一点空间,于是在tomcat还在运行的情况下,ssh远程删除了war包(毕竟有几十M),然后若无其事的返回了 我的博客网站,看到网站加载速度极其缓慢,一开始还抱怨着阿里云网络波动也太大了吧,访问个博客等半天,但是连续刷新几次之后,通过ping排查了网络问题之后,才意识到出大问题了,然后再返回tomcat目录下,才惊奇的发现我的个人博客目录呢!!!,翻遍天了都没找到,桑心的倒在键盘上。 怎么会这样呢,我只 删除了war包 而已,怎么会把解压后的war包也给收拾了呢,一开始还以为是个 **天大的BUG** 以为是SSH远程命令解析时出现了什么故障,开启wireshark抓包后也没发现什么线索,直到我看到这样的解释:。。。 PS:感谢: https://blog.csdn.net/u012416792/article/details/77975930

tomcat 的war包机制

在tomcat中webapps目录上传war包后.



  • war不能在tomcat运行时删除,否则会删除自动解压的工程。 你可以停止tomcat后删除war。
  • 当你重新部署的时候,如果有与war文件相同的文件夹,就不会重新部署。
 
  
  1. 因为tomcat在运行期, 会實時监控webapps目錄下的war文件,如果有新增的war,就去解压它; 有删除war,就连同项目一起删除 .
  2. 所以,如果您要删除,可以先关闭tomcat再删除,这样不会有影响的


  • Tomcat/webapps下的WAR包和同名已解压项目,如何加载??

 
   
  1. 首先你要明白什么时候war包才会解压
  2. tomcat启动时候,会去查看webapps目錄下的所有war包,同时查看是否有该war包对应的,已解压的同名文件夹
  3. 如果已经存在,就不会再解压也不會覆蓋該工程下已經被修改過的文件.
  4. 只有当你删除war包对应的同名文件夹(即 你的工程 )后,启动tomcat时才会再進行解压war文件動作



小结

不得不说,懂得背后的原理才能够真正的避免错误,否则瞎蒙真的不是特别好玩,所以说,知识确实是需要好好的积淀的,慢慢来吧。。
ps:有兴趣访问个人博客的伙伴欢迎友链哇:—MikeoPerfect的个人日志

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值