我正在从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服务器。有谁做过这样的事情?
答案 0 :(得分:1)
以下内容应该有效(只处理异常):
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() });
答案 1 :(得分:0)
您可以尝试直接使用jboss-cli命令停止Wildfly服务器。当您想要停止服务器时,请确保服务器已启动并运行。
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();
}