tomcat替换.class文件并没有生效的原因(失效原因)

来源:互联网 发布:excel同列找出重复数据 编辑:程序博客网 时间:2024/06/05 21:53

 紧急关头难免会替换class文件,但一定要注意一下几点。

        1、小心class内中的project 的类的后,替换文件需要加上 $classMapper这个类, 编译成class的时候,会把public class 中的protected class 编译为$.class , 所以替换的时候也要找到这个class替换上, 不过对于这中替换,最好是打成war包替换.

        2、替换完class,是否需要重启容器? 例如tomcat7是无需重启的,但是常量类不再规范的一个类的时候,可能修改了一个类,其他的编译好的仍然使用原值。

        3、 超过5个class,有必要打war包,就不要单次的去替换class文件,不然出了问题还要还原上一个版本。 

        4、即使不重启容器,也要把缓存清除,也就是清除tomcat work下的目录文件。

        5、如果替换的class文件中包含常量,但是常量类中的常量值没有替换,就会出问题。

6、清理tomcat缓存,进入tomcat根目录,删除work/catalina 下的所有东西



原文链接:http://blog.csdn.net/haitianxiaowu1/article/details/52460207

--------------------------


我遇到的是第二条的问题。在一个工具类里修改了服务器的IP,是一个常量类。替换class文件后,重启tomcat无效,接口返回的IP还是以前的IP。后来,把调用该常量类的class文件,也替换了,问题解决了。