Остановите WildFly 10 программно

Я перехожу с JBoss 6.1.0_final на WildFly 10. При определенных условиях я хочу остановить свой сервер. Подобно:

if (condition == true) 
   System.exit(1);

Приведенный выше код прекрасно работает в JBoss, он немедленно выключает сервер. Но когда я исполняю то же самое в WildFly10, сервер не останавливается сразу.

Он посылает сигнал выключения, затем не связан datasource затем JMX и так далее. Я нашел, что может быть сделано MBeans, но не работает здесь: https://developer.jboss.org/thread/198579. Это дает некоторую ошибку как:

параметры и описание имеют разную длину

Я хочу немедленно остановить свой сервер WildFly10. Кто-нибудь сделал что-то подобное?

2 ответа

Следующее должно работать (только обработать исключения):

MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
ObjectName objectName = new ObjectName("jboss.as:management-root=server");
mBeanServer.invoke(objectName, "shutdown", new Object[] { false, 0 }, 
        new String[] { boolean.class.getName(), int.class.getName() });

Вы можете попробовать остановить сервер Wildfly, используя команды jboss-cli напрямую. Убедитесь, что сервер запущен и работает, пока вы хотите остановить его.

try {
    String jbossBinDir =  System.getProperty("jboss.server.base.dir").replace("standalone", "bin");
    Runtime.getRuntime().exec(jbossBinDir+"/" + "jboss-cli.bat --connect --controller=192.168.1.2  -c command=:shutdown");
    } 
    catch(IOException e) 
    {
      e.printStackTrace();
    }
Другие вопросы по тегам