0

新しい属性をmbeanに動的に追加して登録することは可能ですか?

例:

<server>

<mbean code="org.jboss.example.MyMbean" name="jboss:service=myMbean,name=MyMbeanExample">

<attribute name="attribute1">value1</attribute>

<attribute name="attribute2">value2</attribute>

<attribute name="attribute3">value3</attribute>

<attribute name="attribute4">value5</attribute>

<attribute name="attribute5">value5</attribute>...

</mbean>
</server>

jboss-service.xml に追加された新しい属性は、Mbean でコードを変更して MyMbean に動的に登録する必要がありますが、これは可能ですか?

前もって感謝します。

4

1 に答える 1

0

あなたの DynamicMBean のコードを見ずにあなたの質問に答えるのは難しいですが、MBean にコードの変更がないという条件付きで、あなたの質問に対する答えはノーだと思います。ただし、全体的なアプローチは次のとおりです (コードについて自由な仮定をいくつか取っています)。

  • このようなDynamicMBeanは、通常、属性名によってキー設定され、属性の値 (簡単)、または値の取得/設定を目的とした以下の一部またはすべてを含む値オブジェクトのいずれかを含む、ある種のマップを持ちます。属性:
    • ターゲット呼び出しオブジェクト、
    • メソッド_
    • メソッドへの引数の配列
  • MBeanのMBeanInfoが要求された場合、提供されたMBeanAttributeInfoはこのマップ内のキー (およびデータ型、可変性など) を参照する必要があります。新しい属性を追加するたびに更新される MBeanAttributeInfo のコレクション。
  • setAttributeおよびsetAttributesメソッドは、セットがまだ存在しない属性を参照する場合、(新しいキーと値を属性マップに挿入することによって) 新しい属性を作成する必要があります。

JBoss を使用しているため、このようなものを実装したいと思われる場合は、JBoss のServiceDynamicMBeanSupportを拡張することを検討してください。すべてではありませんが、いくつかの作業を行います。

于 2013-02-12T14:43:19.670 に答える