java - 部署可以自行停止吗?

标签 java jboss wildfly wildfly-8

我目前正在寻找一种以编程方式停止在 wildfly 上部署的方法。

背景:

  • 应用程序在其启动阶段使用 MBean 进行一些健康检查。
  • 如果应用确定环境无效是因为缺少某些资源,则它需要停止自己的部署。

原来的样子:

  • 该应用程序以前在 JBoss 4 上运行,只是使用 JMX 调用关闭命令停止了整个应用程序服务器。
  • 如果此命令失败,它会使用 System.exit(1) 简单地终止整个 JVM。

目前的问题:

  • 通过 JMX 调用 shutdown() 在 wildfly 上不起作用,因为当试图从已部署的应用程序中停止它时整个服务器挂起。
  • System.exit() 也不会工作,因为 wildly 必须以任何方式捕获命令。

那么有谁知道如何从部署中停止服务器或停止部署过程或取消部署应用程序?

非常感谢!

最佳答案

我假设核心问题是在某些健康检查失败时停止部署过程。在应用程序启动期间抛出运行时异常足以完成这项工作。

@Startup
@Singleton
public class StartupBean {


    @PostConstruct
    public void start() {
        //your checks
        boolean check = doHealthCheck();
        if(!check){
           throw new RuntimeException("Your error message");
        }

    }
}

@Startup
@Singleton
public class StartupBean {


    @PostConstruct
    public void start() {
        //your checks
        boolean check = doHealthCheck();
        if(!check){
           throw new Error("Your error message");
        }

    }
}

关于java - 部署可以自行停止吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23678906/

相关文章:

java - 乘以幂时可能会损失精度吗?

java - 如何与 Maven 安装并行运行 Maven 测试?

java - Web 服务依赖于另一个 Web 服务

java - Wildfly 如何使用自定义模块中的部署类

java - 常规Exp : Matcher: how to get last occurence in the group

java - 使用 java 在基于 REST 的 Web 服务中进行文件响应

java - 如何诊断 JBoss IIOP Stub 生成、类加载问题?

javax.naming.NameNotFoundException : ConnectionFactory with Wildfly 9. 0.1.Final

mysql - 在 WildFly 中配置 MySql

Mysql版本5.6 jar版本5.1