远程启动停止jboss服务器

5

我有一个需求,需要编写一个Java程序,在请求时远程启动或停止JBoss服务器。请问有什么建议吗?其中一种选择可能是调用启动/停止脚本,但这个Java程序(可能是Servlet或JSP)存在于不同的机器上。我们使用的是JBoss服务器7。

1个回答

5

一个简单的方法可以远程启动和停止Jboss,只需使用run.sh和shutdown.sh脚本,并指向正确的主机和端口。如果你使用Linux系统,可以运行:

rsh user@host /path/to/jboss/bin/run.sh
rsh user@host /path/to/jboss/bin/shutdown.sh

您可以使用Java执行Shell命令,可以使用Runtime exec 方法:

 Runtime.getRuntime().exec("shell command here");

有关Java exec方法的更多详细信息,请参见此完整答案


更好的选择是以编程方式使用JMX控制台,通过在服务器MBean上调用关闭方法,您可以停止/重新启动Jboss实例。 JMX方法更强大,因为您可以监视和管理Jboss运行实例的每个方面(例如日志记录,内存或CPU)。请查看此链接以开始。

我创建了一段代码片段来帮助您入门,请查看这个有效的解决方案:http://snipt.org/Ahhjh4

记住:

  • 使用add-user.sh(JBOSS_HOME/bin)在Jboss实例上创建Jboss用户
  • 将jboss-client.jar包含在客户端类路径中(该jar文件位于JBOSS_HOME/bin/client中)

祝您好运!


感谢您的这篇文章。我更喜欢通过JMX连接器来完成它。一旦我获取到正在运行的Jboss AS的JMXConnector和MBeanServerConnection句柄,我该如何停止和重新启动AS呢?非常感谢您的帮助。 - user458580
我编辑了答案,添加了完整的解决方案代码片段。 - zerologiko
再次感谢您提供这个好的例子。我的问题是我需要在不同的时间点启动和停止jboss服务器。一旦我停止了服务器,我可能无法获取Mbean的句柄以便再次启动它。是否有可能在一些Mbean运行时停止jboss,以便将来可以重新启动它,当然是远程地。 - user458580
当 Jboss 关闭时,它就是关闭了。只有运行 run.sh 命令才能启动它。 我认为你可以轻松使用第一种简单的方法来启动 Jboss,并使用 JMX 方法来监视、管理、重新启动和关闭。 - zerologiko
你成功了还是需要澄清? - zerologiko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接