出现问题的场景是这样的:
项目中有个专门放流程Key值常量的类FlowConstants.java,其中这些常量都用了final static 修饰。某天因为修改了流程,相应的key值也改变了,所以直接更新了FlowConstants.java中对应的key值。
重新部署为了方便直接将这个常量类编译后的class文件将服务器上的文件替换了,重启服务,运行项目发现流程获取的key值仍然是之前未修改的值,多次替换重启后仍是这样,最后直接将项目重新整体打包发布后才算正常了。
为什么导致这样的显现,参考了网上一位网友的博客其中写道:
java在编译成class文件的时候,如果调用了其他class的static final常量,会直接把这个常量的值写死在本class文件里,所以不能只更新FlowConstants常量文件,而要把所有调用常量的class文件都更新一遍。
按照如上做法,问题解决了。