2013-09-30 78 views
5

我有一个要求编写一个Java程序,以根据请求远程启动停止jboss服务器。任何人都可以请建议如何做到这一点?一个选项可以调用启动/停止脚本,但这个Java程序(可能是servlet或jsp)存在于不同的机器上。我们正在使用jboss服务器7.远程启动停止jboss服务器

回答

5

通过指向正确的主机和端口,可以使用run.sh和shutdown.sh脚本完成远程启动和停止Jboss的简单方法。如果你是在Linux上,你可以运行:

rsh [email protected] /path/to/jboss/bin/run.sh 
rsh [email protected] /path/to/jboss/bin/shutdown.sh 

您也可以执行与Java中的Shell命令,你可以使用Runtime EXEC mewthod:

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

看到这个完整的answer针对Java EXEC更多细节方法。


一个更好的选择我建议,是使用JMX控制台编程,你可以停止/通过调用服务器上的MBean关机重启方法在JBoss intance。 JMX方法更强大,因为您可以监视和管理Jboss runinng instanace的每个方面(如日志记录,内存或cpu)。请参阅this以开始。

我创建片段,以减轻你开始,看到这个有效的解决方案http://snipt.org/Ahhjh4

记住:

  • 使用add-user.sh创建JBoss的实例JBoss用户(JBOSS_HOME /箱)
  • 包括在客户端类路径中的jboss-client.jar中(罐子在JBOSS_HOME /斌/客户端)

祝你好运!

+0

感谢这篇文章。我宁愿通过JMX连接器来完成它。一旦我处理了正在运行的Jboss AS的JMXConnector和MBeanServerConnection。我该如何停止并重新启动AS。我感谢你的帮助。 – user458580

+0

我编辑了答案,添加了完整的解决方案片段。 – zerologiko

+0

再次感谢这个不错的例子。我的问题是我需要在不同的时间点启动和停止jboss服务器。一旦我停止了服务器,我可能无法获得Mbean的处理以再次启动它。是否有可能停止运行某些Mbean的jboss,以便将来可以重新启动,当然也可以远程启动。 – user458580