2011-07-21 8 views
5

Actualmente estoy usando JBoss 4.3 para una aplicación web. Me gustaría pasar a JBoss AS 7. He podido solucionar el problema de las diferencias de la aplicación en ambas versiones, menos una. La aplicación tiene algunos beans JMX que se crean a través del marco de primavera. Lamentablemente, la versión AS 7 eliminó la clase: org.jboss.mx.util.MBeanServerLocator, que se utilizó en la primavera para ubicar el servidor JBoss JMX y crear algunos beans. No estoy familiarizado con JMX, pero hasta ahora, lo único que he encontrado hasta ahora es: "http://lists.jboss.org/pipermail/jboss-as7-dev/2011-February/000569.html". Me preguntaba si alguien sabe cómo reemplazar la clase anterior de JBOSS con las nuevas clases de JMX 1.6. Aquí está mi snipet configuración del resorte de la pieza que necesito para arreglar:Reemplazo del localizador de servidores JMX en JBoss AS 7 para la clase MBeanServerLocator

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

Gracias,

Respuesta

4

El MBeanServer utilizado por JBoss 7 (por defecto) es la plataforma MBeanServer. El nombre de clase es com.sun.jmx.mbeanserver.JmxMBeanServer y el dominio predeterminado es DefaultDomain. En consecuencia, puede simplemente usar:

java.lang.management.ManagementFactory.getPlatformMBeanServer() 

alternativa:

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

En realidad, yo sólo mirar en la página de JMX para la primavera http://static.springsource.org/spring/docs/1.2.x/reference/jmx.html

El siguiente trabajo tanto en JBoss instaces 4 y 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> 
Cuestiones relacionadas