关于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 文件时,这个问题经常出现。
事实上,我不确定这个原因的正确性,因为我对以下算法存在疑问:
- WildFly 正常运行
- CLI:删除旧 war/安装新 war(使用新哈希)。没有错误,一切正常
- 过一会儿重启 WildFly。重启时出现此错误。
如果查看 standalone.xml,我可以看到哈希来自新的战争,但是内容本身不在 standalone/data 中。
可以采取什么措施通过重新部署永远摆脱此错误?并且不要每五次安装和重新启动 WildFly 服务器时手动修复它。
我希望有无需重新启动 WildFly 的解决方案......
答案1
首先,您可能需要升级 WildFly,因为已修复了几个错误。问题的根源是 WildFly 配置与部署内容存储库之间的不同步。这就是为什么对数据文件夹的任何操作都可能造成这种情况。