1

Spring 3.1 では、JMX を介して同じ Bean を 2 つの異なるインターフェイスを持つ 2 つの異なる Bean 名でエクスポートしようとしています。

以下は、私がやろうとしていることを示すSpring xml構成の例です。

<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
<property name="beans">
  <map>
    <entry key="internal:name=internalName" value-ref="myBean"/>
    <entry key="external:name=externalName" value-ref="myBean"/>
  </map>
</property>
<property name="assembler">
  <bean class="org.springframework.jmx.export.assembler.InterfaceBasedMBeanInfoAssembler">
    <property name="interfaceMappings">
      <props>
        <prop key="internal:name=internalName">InternalMXBean</prop>
        <prop key="external:name=externalName">ExternalMXBean</prop>
      </props>
    </property>
  </bean>
</property>

myBean は、JMX 経由で公開しようとしている両方のインターフェースを実装しています。

ただし、アプリケーションを起動すると例外が発生します

javax.management.InstanceAlreadyExistsException: MXBean already registered with name internal:name=internalName

異なるインターフェイスを公開する 2 つの異なる mbean 名で同じ Bean インスタンスを登録する方法はありますか?

4

1 に答える 1

1

同じ MBean を複数の名前で登録できますか? は、同じ MBean を異なる名前で登録できることを示していますが、これが悪い考えである理由についていくつかの理由を示しています。

私の特定のケースでは、MXBeans を使用しています。同じ MXBean を異なるオブジェクト名で登録することはできません。これは、MXBean 間の参照のサポートと競合するためです。

于 2012-10-04T08:42:26.800 に答える