永久消除在更新 WildFly(或 Jboss EAP)中的文件时内容丢失的错误

永久消除在更新 WildFly(或 Jboss EAP)中的文件时内容丢失的错误

关于WildFly(10)上的错误,这不是一个简单问题:

WFLYSRV0137:部署“ANYDEPLOYMENT”的部署内容存储库中没有哈希为 edba0011304daa1b2648eb4848a44536acbbebf6 的部署内容。这是一个致命的启动错误。要纠正此问题,请在设置 --admin-only 开关的情况下重新启动,并使用 CLI 安装缺少的内容或将其从配置中删除,或者从 xml 配置文件中删除部署并重新启动。

Google 有很多关于手动编辑此类错误的信息,它包括简单地手动删除 standalone.xml / domain.xml 中的条目并重新启动服务器。

根本原因到处都表明为:

“错误通常发生在删除 standalone/data 或 domain/data 目录,然后尝试重新部署相同的应用程序 war 文件时。WildFly 服务器无法删除 standalone.xml / domain.xml 中定义的与已部署应用程序具有相同哈希值的条目”

对于Jboss EAP,redhat portal同样如此:https://access.redhat.com/solutions/1370523

但请解释如何从根源上解决这个问题?不要不断地手动编辑文件。没有任何解决方案,但在更新 war 文件时,这个问题经常出现。

事实上,我不确定这个原因的正确性,因为我对以下算法存在疑问:

  1. WildFly 正常运行
  2. CLI:删除旧 war/安装新 war(使用新哈希)。没有错误,一切正常
  3. 过一会儿重启 WildFly。重启时出现此错误。

如果查看 standalone.xml,我可以看到哈希来自新的战争,但是内容本身不在 standalone/data 中。

可以采取什么措施通过重新部署永远摆脱此错误?并且不要每五次安装和重新启动 WildFly 服务器时手动修复它。

我希望有无需重新启动 WildFly 的解决方案......

答案1

首先,您可能需要升级 WildFly,因为已修复了几个错误。问题的根源是 WildFly 配置与部署内容存储库之间的不同步。这就是为什么对数据文件夹的任何操作都可能造成这种情况。

相关内容