2011-07-21 18 views
5

我目前使用JBoss 4.3作为Web应用程序。我想转到JBoss AS 7.我已经能够解决这两个版本中应用程序的差异,但只有一个版本。该应用程序有一些通过spring框架创建的JMX bean。不幸的是,AS 7版本删除了在春季使用的类:org.jboss.mx.util.MBeanServerLocator,以找到JBoss JMX服务器并创建一些bean。我不熟悉JMX,但到目前为止,我迄今为止唯一发现的是: “http://lists.jboss.org/pipermail/jboss-as7-dev/2011-February/000569.html”。我想知道是否有人知道如何用新的JMX 1.6类从JBOSS中替换上面的类。这里是我的一块,我需要修复Spring配置snipet:JBoss AS 7中用于MBeanServerLocator类的JMX服务器定位器替换

<bean class="org.springframework.jmx.export.MBeanExporter"> 
    <property name="server"> 
     <bean class="org.jboss.mx.util.MBeanServerLocator" factory-method="locateJBoss"/> 
    </property> 
     <property name="beans"> 
     <map> 
      <entry key="MywebMbeans:name=profileListenerContainer" value-ref="profileListenerContainer"/> 
      <entry key="MywebMbeans:name=jmsSenderService" value-ref="jmsSenderService"/> 
      <entry key="MywebMbeans:name=mailSender" value-ref="mailSender"/> 
     </map> 
     </property> 
     <property name="assembler" ref="mbeanAssembler"/> 
</bean> 

感谢,

回答

4

MBeanServer的一个JBoss 7(默认)采用的是平台MBeanServer。类名称为com.sun.jmx.mbeanserver.JmxMBeanServer,默认域为DefaultDomain。因此,你可以简单地使用:

java.lang.management.ManagementFactory.getPlatformMBeanServer() 

或者:

for(MBeanServer server: javax.management.MBeanServerFactory.findMBeanServer(null)) { 
     if("DefaultDomain".equals(server.getDefaultDomain())) return server; 
    } 
    throw new Exception("Failed to locate MBeanServer"); 
1

其实我只是在看的JMX页面春季 http://static.springsource.org/spring/docs/1.2.x/reference/jmx.html

下面的工作在这两个JBoss的instaces 4和7 。

<bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"> 
     <property name="locateExistingServerIfPossible" value="true" /> 
</bean> 

<bean class="org.springframework.jmx.export.MBeanExporter"> 

    <property name="server" ref="mbeanServer"/> 
    </property> 
     <property name="beans"> 
     <map> 
      <entry key="MywebMbeans:name=profileListenerContainer" value-ref="profileListenerContainer"/> 
      <entry key="MywebMbeans:name=jmsSenderService" value-ref="jmsSenderService"/> 
      <entry key="MywebMbeans:name=mailSender" value-ref="mailSender"/> 
     </map> 
     </property> 
     <property name="assembler" ref="mbeanAssembler"/> 
</bean>