I tried using the key naming strategy as below.
Code:
<bean id="exporter" class="org.springframework.jmx.export.annotation.AnnotationMBeanExporter">
<property name="autodetect" value="true" />
<property name="ensureUniqueRuntimeObjectNames" value="true" />
<property name="namingStrategy" ref="my.ObjectNamingStrategy" />
</bean>
<bean id="my.ObjectNamingStrategy" class="org.springframework.jmx.export.naming.KeyNamingStrategy">
<property name="mappings">
<props>
<prop key="myBean1">bean:name=myBean1</prop>
<prop key="myBean2">bean:name=myBean2</prop>
</props>
</property>
</bean>
However I now get the error:
Code:
Caused by: javax.management.MalformedObjectNameException: Key properties cannot be empty
at javax.management.ObjectName.construct(ObjectName.java:467)
at javax.management.ObjectName.<init>(ObjectName.java:1403)
at javax.management.ObjectName.getInstance(ObjectName.java:1285)
at org.springframework.jmx.support.ObjectNameManager.getInstance(ObjectNameManager.java:74)
at org.springframework.jmx.export.naming.KeyNamingStrategy.getObjectName(KeyNamingStrategy.java:140)
at org.springframework.jmx.export.MBeanExporter.getObjectName(MBeanExporter.java:751)
at org.springframework.jmx.export.MBeanExporter.registerBeanInstance(MBeanExporter.java:654)
at org.springframework.jmx.export.MBeanExporter.registerBeanNameOrInstance(MBeanExporter.java:615)
... 22 more