java - 重新部署 JBoss AS war 后最终静态值未更新

标签 java jboss static jvm war

这是我所做的:

  1. 编译包含更改的最终静态值的文件。
  2. 使用步骤 1 中编译的文件更新服务器中相应的 .class 文件
  3. 将“xxx.war.deployed”更改为“xxx.war.dodeploy”以重新部署 war 。

在此之后,我猜最终的静态值应该更新,但它没有。

只是我删除了整个war文件,重新上传并部署它。值终于更新了。

那么,到底是什么原因造成的呢?最终静态值与 JVM 具有相同的生命周期吗?

最佳答案

原始类型或字符串类型的静态最终变量实际上是编译时常量,因此,无论在何处使用它们,都会按字面意思内联。因此,您会丢失对原始类的引用,并且当该类更改时不会发生任何更新。您需要完全重新编译。

有很多方法可以解决这个问题,但没有一个特别令人愉快。例如,您可以使用静态方法返回常量值。

关于java - 重新部署 JBoss AS war 后最终静态值未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25899566/

相关文章:

java - Bonita Open Solution 5.4 的 JBoss、Tomcat 或 Glassfish?

java - Liferay 6.2 部署失败,缺少/不可用的 JBoss 依赖项

java - 如何在java中初始化变量时返回对象?

java - 从泛型方法调用重载方法

java - 类加载器仅从类路径而不是 url 工作

java - 在 kotlin 中创建 Lambda 函数

java - 内存少的jboss

java - 如何使用 Criteria API 根据不同的条件查找特定人员?

java - 如何在没有实例或类名的情况下获取类对象

static - 如何在 Rust 库中运行清理代码?