2011-07-21 17 views
5

Attualmente sto utilizzando JBoss 4.3 per un'applicazione web. Vorrei passare a JBoss AS 7. Sono stato in grado di risolvere il problema delle differenze dell'applicazione in entrambe le versioni tranne una. L'applicazione ha alcuni bean JMX creati attraverso il framework spring. Sfortunatamente il rilascio di AS 7 ha rimosso la classe org.jboss.mx.util.MBeanServerLocator che è stata utilizzata in primavera per individuare il server JBX JMX e creare alcuni bean. Non ho familiarità con JMX ma finora l'unica cosa che ho trovato finora è: "http://lists.jboss.org/pipermail/jboss-as7-dev/2011-February/000569.html". Mi chiedevo se qualcuno sa come sostituire la classe di cui sopra da JBOSS con le nuove classi JMX 1.6. Qui è la mia primavera snipet configurazione per il pezzo che ho bisogno di risolvere il problema:Sostituzione localizzatore server JMX in JBoss AS 7 per classe 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> 

Grazie,

risposta

4

Il MBeanServer usata da JBoss 7 (di default) è la piattaforma MBeanServer. Il nome della classe è com.sun.jmx.mbeanserver.JmxMBeanServer e il dominio predefinito è DefaultDomain. Di conseguenza, si può semplicemente utilizzare:

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

In realtà mi basta guardare nella pagina JMX per la primavera http://static.springsource.org/spring/docs/1.2.x/reference/jmx.html

Di seguito lavorerà sia in JBoss instaces 4 e 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> 
Problemi correlati