2013-09-30 14 views
5

Ho bisogno di scrivere un programma java per avviare in remoto l'arresto di un server jboss su richiesta. Qualcuno può suggerire per favore come potrebbe essere fatto? Un'opzione potrebbe essere invocare lo script start/stop ma questo programma java (potrebbe essere servlet o jsp) esiste su una macchina diversa. Stiamo utilizzando jboss server 7.Arresta da remoto il server jboss

risposta

5

Un semplice metodo per avviare e arrestare Jboss in remoto può essere eseguito con lo script run.sh e shutdown.sh, puntando all'host e alla porta corretti. Se siete su Linux è possibile eseguire:

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

Si può anche eseguire un comando shell con Java, è possibile utilizzare Runtime exec mewthod:

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

Vedere questo completo answer per maggiori dettagli su Java exec metodo.


Un'alternativa migliore Vorrei suggerire, è quello di utilizzare JMX-console di programmazione, è possibile interrompere/riavviare un intance Jboss invocando il metodo di arresto sul server MBean. L'approccio di JMX è più potente perché puoi monitorare e gestire ogni aspetto dell'istanza di esecuzione di Jboss (come la registrazione, la memoria o la cpu). Vedere this per iniziare.

Ho creato un frammento per facilitare la vostra partenza, questa soluzione di lavoro http://snipt.org/Ahhjh4

Ricorda:

  • creare un utente Jboss nell'istanza Jboss utilizzando add-user.sh (JBOSS_HOME/bin)
  • includono JBoss-client.jar nel client di classe-path (il vaso è in JBOSS_HOME/bin/client)

Buona fortuna!

+0

Grazie per questo post. Preferirei farlo attraverso il connettore JMX. Una volta che mi occupo di JMXConnector e MBeanServerConnection di un Jboss AS in esecuzione. Come posso interrompere e riavviare AS. Apprezzo il tuo aiuto su questo. – user458580

+0

Ho modificato la risposta aggiungendo lo snippet di soluzione completo. – zerologiko

+0

Ancora una volta grazie per questo bell'esempio. Il mio problema è che ho bisogno di avviare e arrestare il server jboss in un diverso punto del tempo. Una volta interrotto il server, potrei non essere in grado di ottenere l'handle di Mbean per avviarlo di nuovo. È possibile interrompere jboss con alcuni dei Mbean in esecuzione in modo che possa essere riavviato in futuro, ovviamente da remoto. – user458580