以前使用Tomcat的时候直接就可以热部署,现在换了一个使用Spring框架的项目突然就不能热部署了。

网上说在tomcat里conf/context.xml中加入

<Context antiJARLocking="true" antiResourceLocking="true" >

就可以实现热部署,但修改后依然不行。

倒腾了半天听说可以使用JRebel可以实现功能,于是在IntelliJ的插件里找来。

按照网上的教程配置好之后,我找到web项目部署的位置xx\itaxPlatform\out\artifacts\itaxPlatform_Web_exploded,我发现里面的文件更新日期是随着每次我改动代码而变化的,这说明IntelliJ部署的web项目是被更新的。

奇怪的是运行起来却发现代码并没有更新。

莫非此刻在Tomcat服务器中运行的Java代码并不是IntelliJ部署的web项目代码?

我想一定是另有一份代码在我所不知道的角落悄悄运行着。

我在打印出的日志中找到这么一句

JRebel: Monitoring Log4j configuration in 'file:/D:/software/apache-tomcat-7.0.64-windows-x64/apache-tomcat-7.0.64/temp/0-admin/WEB-INF/classes/log4j.properties'.

我意识到Tomcat也许运行了一个temp的项目。

再上网找,有网友也遇到类似问题,把antiJARLocking="true" antiResourceLocking="true" 去掉就好,因为这会让Tomcat复制一份文件到temp文件夹中。

原来是这样。

去掉之后,JRebel贴心地弹了一个提示框告诉你,第一次热部署成功。

 

相关文章:

  • 2022-12-23
  • 2022-02-20
  • 2021-10-24
  • 2021-05-06
  • 2021-08-12
  • 2022-12-23
  • 2021-08-27
猜你喜欢
  • 2022-01-18
  • 2021-08-07
  • 2021-06-11
  • 2021-10-01
  • 2022-01-08
  • 2021-09-26
相关资源
相似解决方案