JMXで使用するMBeanに対して、javax.management.MBeanRegistration を実装すると以下のメソッドが自動的に呼ばれることになっている;
void postDeregister() void postRegister(Boolean registrationDone) void preDeregister() ObjectName preRegister(MBeanServer server, ObjectName name)
上記メソッドでは、JBossサービスに依存した初期化をおこなうことができない。
JBoss特有の初期が必要な場合は以下のライフサイクルメソッドを実装する;
void create() throws Exception void destroy() void start() throws Exception void stop()
または、上記が定義された 「org.jboss.util.Service」インタフェースか、String getStateString()などが追加された「org.jboss.util.ServiceMBean」インタフェースを実装することでJBoss特有の初期化ができる。
JBossでのMBean作成上の注意
抽象クラス「org.jboss.util.ServiceMBeanSupport」を継承して作成することが一般的だが、start(), stop() などのライフサイクルメソッドをOverrideしても子クラスのものが呼び出されずに親クラス(ServiceMBeanSupport)のメソッドが呼ばれる仕様になっている。
子クラスでOverrideすべき専用メソッドを実装すること!!
void startService() throws Exception void stopService()
*詳しくはServiceMBeanSupportのJavaDocなどや、JBossマニュアルを参照すること。