spring JMX可以使用两个不同的bean名称导出相同的bean实例吗?

问题描述 投票:0回答:1

在Spring 3.1中,我试图通过JMX以具有两个不同接口的两个不同bean名称导出同一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

是否有任何方法可以在暴露不同接口的两个不同mbean名称下注册相同的bean实例?

java spring jmx
1个回答
0
投票

Can you register the same MBean with more than one name?表示您可以使用不同的名称注册相同的MBean,但提供了一些理由说明为什么这可能不是一个好主意。

在我的特定情况下,我正在使用MXBean。相同的MXBean无法以不同的对象名称注册,因为这将与对MXBean间引用的支持冲突。

© www.soinside.com 2019 - 2024. All rights reserved.