2013-09-30 7 views
5

Ich habe eine Anforderung, ein Java-Programm zu schreiben, um aus der Ferne zu starten stoppen Sie einen jboss-Server auf Anfrage. Kann mir jemand bitte vorschlagen wie es gemacht werden könnte? Eine Option könnte Start/Stopp-Skript aufrufen, aber dieses Java-Programm (möglicherweise Servlet oder Jsp) existiert auf einem anderen Computer. Wir verwenden jboss server 7.Remotestart stop jboss server

Antwort

5

Eine einfache Methode zum Starten und Stoppen von Jboss remote kann mit dem Skript run.sh und shutdown.sh erfolgen, indem auf den richtigen Host und Port hingewiesen wird. Wenn Sie auf Linux sind, können Sie laufen:

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

Sie auch einen Shell-Befehl mit Java ausführen kann, Sie Runtime exec mewthod verwenden:

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

Sehen Sie diese komplette answer für weitere Details über Java exec Methode.


Eine bessere Alternative ich vorschlagen würde, ist JMX-Konsole programmatisch verwenden, können Sie die Shutdown-Methode durch den Aufruf auf dem Server MBean eine Jboss intance stoppen/neu starten. Der JMX-Ansatz ist leistungsfähiger, da Sie jeden Aspekt des JBoss-RunIng-Vorgangs (wie Protokollierung, Speicher oder CPU) überwachen und verwalten können. Siehe this zum Starten.

Ich habe erstellt einen Schnipsel Start zu erleichtern, finden Sie in dieser Arbeitslösung http://snipt.org/Ahhjh4

Denken Sie daran:

  • erstellen Jboss Benutzer auf der JBoss-Instanz add-user.sh mit (JBOSS_HOME/bin)
  • den Jboss-client.jar in der Client-Klasse-Pfad enthalten (das Glas ist in JBOSS_HOME/bin/Client)

Viel Glück!

+0

Danke für diesen Beitrag. Ich würde es lieber über JMX-Connector machen. Sobald ich JMXConnector und MBeanServerConnection einer laufenden Jboss AS behandeln. Wie kann ich AS stoppen und neu starten? Ich schätze Ihre Hilfe zu diesem Thema. – user458580

+0

Ich habe die Antwort bearbeitet, indem ich das vollständige Lösungs-Snippet hinzugefügt habe. – zerologiko

+0

Nochmals vielen Dank für dieses schöne Beispiel. Mein Problem ist, dass ich den jboss Server zu einem anderen Zeitpunkt starten und stoppen muss. Sobald ich den Server stoppe, kann ich den Handle von Mbean möglicherweise nicht mehr starten. Ist es möglich, jboss mit einigen laufenden Mbeans zu stoppen, so kann es natürlich auch aus der Ferne gestartet werden. – user458580