JMXの属性や操作に簡単にアクセスする

JMXの属性を取得したり操作を呼び出したりしようとすると非常に面倒. 属性の場合複合オブジェクトだとCompositeDataを再帰的に降っていかないといけないし、操作に関してはいちいちメソッドのシグネチャを特定しなければならない. この辺は型が分かっていればすべて解決できるということでMBeanインターフェースの型を用いてMBeanの属性ないし操作にアクセス出きるようにするプロキシを生成する手段が javax.management.JMX クラスに存在する.

HogeMBean mBean = JMX.newMBeanProxy(mBeanServerConnection, objectName, HogeMBean.class);

javax.management.MBeanServerInvocationHandler を使うユーティリティクラスで、実質的にはリフレクションの Proxy を使ってプロキシオブジェクトを生成している. MBeanが通知を受け取れる場合ようにNotificationEmitterを実装したプロキシオブジェクトが生成な可能なメソッドも存在している.