Automatisches Starten eines JBoss-Dienstes (MBean)

8

Ich versuche, einen JBoss-Dienst zu erstellen, der bei jedem Start des Servers automatisch gestartet werden sollte.

Ich habe die folgende Klassenstruktur für meinen Service:

%Vor%

Ich habe auch die folgende Konfigurationsdatei - jboss-service.xml - für meinen Dienst:

%Vor%

Meine Frage ist: Wie starte ich diesen Dienst automatisch?

Ich habe erwartet, dass JBoss die Methode start () als Teil des Ladevorgangs aufrufen wird, aber es ist nicht: Ich habe eine Menge Logging-Code in meiner start () -Methode, aber ich habe keine Ausgabe gesehen .

Wenn ich jedoch den MBean-Status mithilfe der JMXConsole anschaue, ist sein Status (StateString) "Gestartet".

Problem gelöst

Ich habe die Lösung für mein Problem gefunden. Ich überschrieb die Methoden start (), stop (), destroy () und create (); Da ich jedoch die abstrakte Klasse ServiceMBeanSupport erweitere, sollte ich die Methoden startService (), stopService () usw. außer Kraft setzen.

Ich habe gerade meinen Code von der Methode start () in die Methode startService () verschoben und nun verhält sich alles so, wie ich es brauchte: sobald seine Abhängigkeiten erfüllt sind, wird mein Dienst gestartet und die Methode startService () ausgeführt.

Ich denke, die Schlussfolgerung ist: Obwohl der Lebenszyklus einer MBean den Aufruf create (), start (), stop () und destroy () beinhaltet, verwendet die Implementierung der abstrakten Klasse ServiceMBeanSupport diese Methoden, um den Lebenszyklus zu behandeln . Dennoch bietet es die geschützten Methoden * Service (), um dem Programmierer die Teilnahme am Lebenszyklus zu ermöglichen.

    
nozebacle 18.06.2009, 01:00
quelle

2 Antworten

6

Problem gelöst

Ich habe die Lösung für mein Problem gefunden. Ich überschrieb die Methoden start (), stop (), destroy () und create (); Da ich jedoch die abstrakte Klasse ServiceMBeanSupport erweitere, sollte ich die Methoden startService (), stopService () usw. außer Kraft setzen.

Ich habe gerade meinen Code von der Methode start () in die Methode startService () verschoben und nun verhält sich alles so, wie ich es brauchte: sobald seine Abhängigkeiten erfüllt sind, wird mein Dienst gestartet und die Methode startService () ausgeführt.

Ich denke, die Schlussfolgerung ist: Obwohl der Lebenszyklus einer MBean den Aufruf create (), start (), stop () und destroy () beinhaltet, verwendet die Implementierung der abstrakten Klasse ServiceMBeanSupport diese Methoden, um den Lebenszyklus zu behandeln . Dennoch bietet es die geschützten Methoden * Service (), um dem Programmierer die Teilnahme am Lebenszyklus zu ermöglichen.

    
nozebacle 18.06.2009, 09:03
quelle
2

Für mich hat es geholfen, die Stopp- und Startmethoden in der MBean-Schnittstelle zu definieren:

%Vor%

Der Vorteil ist, dass Sie ServiceMBean oder ServiceMBeanSupport nicht erweitern müssen.

    
Roland Schneider 01.04.2011 11:02
quelle

Tags und Links