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

紧急关头难免会替换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 下的所有东西。
7、实在不行,反编译工具查看(个人补充)

posted @ 2017-08-02 15:33  星朝  阅读(3023)  评论(0编辑  收藏