出现问题的场景是这样的:

项目中有个专门放流程Key值常量的类FlowConstants.java,其中这些常量都用了final static 修饰。某天因为修改了流程,相应的key值也改变了,所以直接更新了FlowConstants.java中对应的key值。

重新部署为了方便直接将这个常量类编译后的class文件将服务器上的文件替换了,重启服务,运行项目发现流程获取的key值仍然是之前未修改的值,多次替换重启后仍是这样,最后直接将项目重新整体打包发布后才算正常了。

为什么导致这样的显现,参考了网上一位网友的博客其中写道:

java在编译成class文件的时候,如果调用了其他class的static final常量,会直接把这个常量的值写死在本class文件里,所以不能只更新FlowConstants常量文件,而要把所有调用常量的class文件都更新一遍。

按照如上做法,问题解决了。

参考:http://blog.sina.com.cn/s/blog_66dddb8b0102y1un.html

相关文章:

  • 2022-12-23
  • 2022-02-22
  • 2022-01-29
  • 2021-08-04
  • 2022-12-23
  • 2021-09-07
  • 2022-12-23
  • 2021-12-29
猜你喜欢
  • 2021-12-03
  • 2022-12-23
  • 2021-08-22
  • 2021-05-25
  • 2022-12-23
  • 2021-09-18
  • 2021-09-30
相关资源
相似解决方案