如何让 JBoss/WildFly 在应用程序部署/初始化失败时自动终止?

Posted

技术标签:

【中文标题】如何让 JBoss/WildFly 在应用程序部署/初始化失败时自动终止?【英文标题】:How can I get JBoss/WildFly to terminate automatically upon application deployment/initialization failure? 【发布时间】:2018-02-25 05:31:14 【问题描述】:

我正在使用 WildFly 运行 KeyCloak 应用程序,并希望在 KeyCloak 无法部署或初始化时终止容器。不幸的是,我没有看到实现这一目标的明确方法,我想知道是否有人知道这是否可能。

当 WildFly 启动失败时,日志中的第一个错误通常是这样的,然后是一堆与 StepHanders 相关的级联错误:

ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) WFLYCTL0348: Timeout after [7200] seconds waiting for service container stable.操作将回滚。第一次更新服务容器的步骤是在地址 '[("interface" => "management")]'处'add'

有没有办法让 WildFly 在部署/初始化失败时终止?

【问题讨论】:

【参考方案1】:

您可以编写自定义脚本,该脚本将从日志文件中 grep 异常并关闭/杀死服务器实例。

【讨论】:

或者通过jboss-cli或者管理API看一下服务器状态,然后kill掉。 我考虑了这两种解决方案,但它们看起来像黑客。我很难相信应用服务器缺少这种基本的原生功能。

以上是关于如何让 JBoss/WildFly 在应用程序部署/初始化失败时自动终止?的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse Kepler 和 JBoss Wildfly 热部署

当两个 jar 具有相同的类集时,使用 jboss/wildfly 的类加载冲突,如何设置顺序/优先级?

JBoss wildfly 10禁止访问spring mvc Web应用程序

如何在 JBoss Wildfly 9 中关闭 Hibernate 调试日志记录?

在 JBoss / Wildfly 9 上使用 JAX-RS 项目设置 Swagger.io 问题

在 JBoss/WildFly 中注入 EntityManager