Feb 16 2009

Exposing MBeans with Spring

Published by Gilles at 9:21 pm under J2EE, Java, Spring

The core class in Spring's framework is the MBeanExporter. This class is responsible for taking your beans and registering them with a MBeanServer.

Add an MBeanExporter bean in your applicationContext: (for my part, I created a separate applicationContext-.xml)

A first approach is to add the beans you want to be managed as key/value of the beans/map property:

XML:
  1. <bean id="exporter" class="org.springframework..export.MBeanExporter" lazy-init="false">
  2. <property name="beans">
  3. map>
  4. <entry key="bean:name=testBean1" value-ref="testBean"/>
  5. </map></property>
  6. </bean>
  7. <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.

XML:
  1. <bean id="mbeanServer" class="org.springframework..support.MBeanServerFactoryBean">
  2. <!-- indicate to first look for a server -->
  3. <property name="locateExistingServerIfPossible" value="true"/>
  4. </bean>

Pages: 1 2 3 4 5

5 Responses to “Exposing MBeans with Spring”

  1. KPon 25 Feb 2009 at 10:27 pm

    I was trying to set up a JMX managed standalone Spring application and the article helped a lot. Thanks!!!

  2. markon 06 Nov 2009 at 11:49 am

    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

  3. Gilleson 06 Nov 2009 at 11:59 am

    Hello Mark,
    You can place your WebsphereNamingStrategy class where you want. For my part, I place it in an “util” package…
    Cheers,
    Gilles

  4. markon 06 Nov 2009 at 12:24 pm

    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

  5. hoschilordon 26 Aug 2010 at 8:23 am

    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 :-)

Trackback URI | Comments RSS

Leave a Reply