在 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 实例,暴露不同的接口?