2013-09-30 77 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