最近项目里频繁遇到了一些奇怪的问题,遂记录几个,整理清思路,减少以后类似问题的出现几率
1) 类改动,编译成Jar部署后,改动没有得到体现
~~特征 :即使是增加的System.out.pringln打印语句,或者log日志,依然没有执行
~~分析:
@新部署的类的版本,可能是回退,timestamp明显低于当前
@新部署的类的版本,可能是从别的地方copy过来,timestamp明显低于当前
-----------------jdk增量编译所致
~~特征: 即使反编译了当前类,和源代码完全一致
@新部署的类,可能在编译打包的时候放在了不同的jar包
比如一个类[以JBOSS为server],既被编译到 [server instance]/[ear]/[jar]也被编译到[server instance]/[ear]/[war]/WEB-INF/[lib]/[jar]
这个时候,优先起作用的是前者,而我们web应用期望是后者
-----------------中间环节的不严谨所致
2) 文件改动,部署后,依然没有更新
@依然是时间戳的问题,timestamp明显低于当前