2012-04-05 10 views
1

私はMBeanを実装するJavaプロジェクトで作業しています。私はMBeanを傍受し、レジストリの前にプロパティを変更/追加する必要があります。例:MBeanインターセプタを挿入する

domainNameを:名前= myMBean - > domainNameを:名前= myMBean1、タイプ=がMyType

私はインターセプタ他のデフォルトインターセプタを適用する方法を提示したが、私はそれを行う方法見当がつかないthis linkを見つけましたコード内。

ありがとうございます。

+0

私は簡単な答えを追加しました。 mbeansを登録するために使用しているフレームワークで質問を編集できれば、私はより良い答えを出すことができます。 – Gray

答えて

0

豆を登録した後は、明らかに遅すぎます。最も簡単なことは、登録がどのように行われるかを変更することです。 Beanを登録するためにどのフレームワークを使用しているのかわかったら、もっと助けることができます。あなたはそれゆえ異なるObjectName提供することができます

private MBeanServer mbeanServer; 
... 
mbeanServer.registerMBean(mbean, objectName); 

ObjectName objectName = new ObjectName("domainName:name=myMBean1,type=myType"); 

をしかし、私は、あなたが登録を自分でやっていないと仮定し

は、一般的に、実際の登録を行っているものは何でものようなものをやっています。余談として


、私はあなたが別のJMXフレームワークを使用するように切り替えることができますかわからないが、私は最近、私のSimple JMX systemに最後の仕上げを入れています。オブジェクトは公開時にname themselves programmaticallyになります。

+0

実際にプロジェクトはJOnASです。 mbeanレジストリの場合、JOnASはmbean-descriptorとともにBaseModelMBeanというapache APIを使用します。それがあなたの質問に答えるかどうかわかりませんが、私はまだこの分野で多くの参考文献を持っていません。 説明したとおりにオブジェクト名を変更するのが低すぎます。私はいくつかのmbeansを変更する必要があります(存在するかどうかに応じて、アプリケーションの情報を展開するかどうかによって異なります)。したがって: 1. mbeanを登録したいところです。 2.「Something」は情報の有無を確認し、必要に応じてobjectnameを変更します。 3. mbeanを登録 この「何か」を見つけるために残っています:-)。 ありがとうございます。 – Mohammed

+0

申し訳ありませんが、そのフレームワークについてはわかりません。私はあなたが切り替えることができるかどうかはわかりませんが、私は実際にシンプルなJMXシステムに仕上がっています。オブジェクトはプログラムによって名前を付けることができます:http://256.com/sources/simplejmx/ – Gray

+0

私の必要性の別の側面は、デフォルトのMBeanServerの「プロキシ」として見えます。このプロキシでは、リクエストを扱うことができます。 プロキシは、レジストリの前にmbeansを処理し、mbeansにアクセスすることを可能にするコードに加えて、同じインタフェースを実装します(アプリケーションはtype = myTypeのmbeanにしかアクセスできません)。 – Mohammed

関連する問題