Feb 16 2009
Exposing MBeans with Spring
The core class in Spring's JMX framework is the MBeanExporter. This class is responsible for taking your Spring beans and registering them with a JMX MBeanServer.
Add an MBeanExporter bean in your applicationContext: (for my part, I created a separate applicationContext-jmx.xml)
A first approach is to add the beans you want to be managed as key/value of the beans/map property:
-
<bean id="exporter" class="org.springframework.jmx.export.MBeanExporter" lazy-init="false">
-
<property name="beans">
-
map>
-
<entry key="bean:name=testBean1" value-ref="testBean"/>
-
</map></property>
-
</bean>
-
<bean id="testBean" class="mypackage.MyClass"/>
To register your exposed MBeans, you can either create a new MBeanServer or reuse an existing one. I choosed to reuse an existing one.
-
<bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean">
-
<!-- indicate to first look for a server -->
-
<property name="locateExistingServerIfPossible" value="true"/>
-
</bean>


I was trying to set up a JMX managed standalone Spring application and the article helped a lot. Thanks!!!
Hello, I found your post about the Spring mbeans in the WebSphere 6.1. I am new to Spring and JMX and looking for a step by step guide to register and calling by wsadmin some Spring’s mbeans provided by the app developer. I read your post and do understand the websphere naming strategy but where do I need to place this class WebsphereNamingStrategy ?
br
Mark
Hello Mark,
You can place your WebsphereNamingStrategy class where you want. For my part, I place it in an “util” package…
Cheers,
Gilles
Hello Gilles,
Thanks a lot for a quick response. I just have one question if there is any possibility to enable the Spring’s mbean in WAS 6.1 without adding any new code to the project ? I do not have the source code and do not want to extend the EAR file.
br
Mark
excellent info, thanks!
was trying to get this running on websphere and also figured out that websphere changes the objectnames of the mbeans..your sources saved a lot of time for me yeehaa