这是我所做的:
- 编译包含更改的最终静态值的文件。
- 使用步骤 1 中编译的文件更新服务器中相应的 .class 文件
- 将“xxx.war.deployed”更改为“xxx.war.dodeploy”以重新部署 war 。
在此之后,我猜最终的静态值应该更新,但它没有。
只是我删除了整个war文件,重新上传并部署它。值终于更新了。
那么,到底是什么原因造成的呢?最终静态值与 JVM 具有相同的生命周期吗?
最佳答案
原始类型或字符串类型的静态最终变量实际上是编译时常量,因此,无论在何处使用它们,都会按字面意思内联。因此,您会丢失对原始类的引用,并且当该类更改时不会发生任何更新。您需要完全重新编译。
有很多方法可以解决这个问题,但没有一个特别令人愉快。例如,您可以使用静态方法返回常量值。
关于java - 重新部署 JBoss AS war 后最终静态值未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25899566/