2011-07-21 17 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>