【问题标题】:Remotely start stop jboss server远程启动停止 jboss 服务器
【发布时间】:2013-10-05 22:24:06
【问题描述】:

我需要编写一个 java 程序来远程启动停止请求的 jboss 服务器。谁能建议它怎么做?一种选择是调用启动/停止脚本,但这个 java 程序(可能是 servlet 或 jsp)存在于不同的机器上。我们使用的是 jboss server 7。

【问题讨论】:

    标签: jboss7.x remote-access


    【解决方案1】:

    一种远程启动和停止 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命令,你可以使用Runtimeexec mewthod:

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

    有关 Java exec 方法的更多详细信息,请参阅此完整的 answer


    更好的选择我建议,以编程方式使用 JMX-console,您可以通过调用服务器 MBean 上的关闭方法来停止/重新启动 Jboss 实例。 JMX 方法更强大,因为您可以监控和管理 Jboss 运行实例的各个方面(如日志记录、内存或 cpu)。请参阅this 开始。

    我创建了一个 sn-p 来简化您的开始,请参阅此工作解决方案 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。感谢您在这方面的帮助。
    • 我编辑了答案,添加了完整的解决方案 sn-p。
    • 再次感谢这个很好的例子。我的问题是我需要在不同的时间点启动和停止 jboss 服务器。一旦我停止服务器,我可能无法获得 Mbean 的句柄来重新启动它。是否可以在运行一些 Mbean 的情况下停止 jboss,以便将来可以再次启动它,当然是远程启动。
    • 当 Jboss 关闭时,好吧,它关闭了.. 只有 run.sh 命令可以启动它。我想你可以很容易地用第一种简单的方法来启动Jboss,用JMX的方法来监控、管理、重启和关闭。
    • 你成功了还是需要澄清一下?