Automatisch starten JBoss-Dienst (MBean)

Ich versuche zu bauen, ein JBoss-Dienst sollte automatisch gestartet werden, jedes mal, wenn der server gestartet wird.

Ich habe folgende Klassenstruktur für mein service:

public interface CumbiaXPMServiceMBean extends org.jboss.system.ServiceMBean
public class CumbiaXPMService extends org.jboss.system.ServiceMBeanSupport implements CumbiaXPMServiceMBean

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

<server>
    <mbean code="uniandes.cumbia.xpm.jboss.CumbiaXPMService"
       name="jcumbia:service=JCumbiaEngine">
      <depends>jcumbia:service=cumbiaConsole</depends>
      <attribute name="LocationInCumbia" attributeClass="java.lang.String">XPMEngine</attribute>    
    </mbean>
</server>

Meine Frage ist: wie kann ich diesen Dienst automatisch zu starten?

Erwartete ich, dass JBoss rufen die Methode start( ) als Teil als den laden, aber es ist nicht: ich habe viel von dem code in der start () - Methode, aber ich habe nicht gesehen, keine Ausgabe.

Allerdings, wenn ich mir den MBean-status mit der JMXConsole, seinen Status (StateString) ist 'Gestartet'.

Problem Gelöst

Fand ich die Lösung zu meinem problem. Ich war das überschreiben der Methoden start( ), stop( ), destroy( ) und create( ); dennoch, da ich das erweitern der abstrakten Klasse ServiceMBeanSupport, ich sollte das überschreiben der Methoden startService( ), stopService( ), etc.

Ich zog meinen code aus der Methode start( ) die Methode startService( ) und jetzt ist alles verhält sich, wie ich brauchte: sobald Ihre Abhängigkeiten erfüllt sind, mein service wird gestartet und die Methode startService( ) ausgeführt wird.

Ich denke, die Schlußfolgerung ist: obwohl der Lebenszyklus eines MBean umfasst das aufrufen von create( ), start( ), stop( ) und destroy( ), die Umsetzung von der abstrakten Klasse ServiceMBeanSupport verwendet diese Methoden für den Umgang mit den Lebens-Zyklus. Dennoch bietet es die protected-Methoden *Service ( ), um zu erlauben, dass der Programmierer, um die Teilnahme an den Lebenszyklus.

  • "automatisch"? Nicht den Dienst "starten", wenn die app-server gestartet ist? Wenn Sie die JMX-Konsole sagt es gestartet wird, welches Verhalten, glauben Sie es nicht?
  • Ich habe einige logging-code in der start () - Methode, aber es wird nicht ausgeführt. Ich habe einige logging-code in den Konstruktor der Klasse, und ich kann sehen, dass sein Ausgang, aber das ist es.
InformationsquelleAutor nozebacle | 2009-06-18
Schreibe einen Kommentar