我正在从JBoss 6.1.0_final迁移到WildFly 10,在某种条件下,我想停止服务器。比如:
if (condition == true)
System.exit(1);上面的代码在JBoss中运行良好,它会立即关闭服务器。但是,当我在WildFly10中使用相同的内容时,服务器不会立即停止。
它发送关机信号,然后是解除绑定的datasource,然后是JMX等等。我发现MBeans可以完成,但不在这里工作:https://developer.jboss.org/thread/198579。这会产生一些错误,例如:
params和描述有不同的长度。
我想立即停止我的WildFly10服务器。有人做过这样的事吗?
发布于 2017-09-25 14:23:03
以下内容应该有效(只需处理例外情况):
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() });发布于 2017-10-04 10:41:41
您可以尝试使用jboss命令直接停止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();
}https://stackoverflow.com/questions/46406547
复制相似问题