2011-07-21 22 views
5

Obecnie używam JBoss 4.3 dla aplikacji internetowej. Chciałbym przejść do JBoss AS 7. Byłem w stanie naprawić różnice w aplikacji w obu wersjach oprócz jednej. Aplikacja ma kilka komponentów bean JMX utworzonych w ramach wiosennej. Niestety wydanie AS 7 usunęło klasę: org.jboss.mx.util.MBeanServerLocator, która została użyta na wiosnę, aby zlokalizować serwer JBOS JBX i utworzyć kilka komponentów bean. Nie znam JMX, ale jak dotąd jedyne, co do tej pory znalazłem to: "http://lists.jboss.org/pipermail/jboss-as7-dev/2011-February/000569.html". Zastanawiam się, czy ktoś wie, jak zastąpić powyższą klasę z JBOSS nowymi klasami JMX 1.6. Oto moja konfiguracja snipet wiosna za sztukę muszę naprawić:Zastępowanie serwera JMX w JBoss AS 7 dla klasy 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> 

Dzięki

Odpowiedz

4

MBeanServer wykorzystywane przez JBoss 7 (domyślnie) jest platformą MBeanServer. Nazwa klasy to com.sun.jmx.mbeanserver.JmxMBeanServer, a domyślną domeną jest DefaultDomain. W związku z powyższym, można po prostu użyć:

java.lang.management.ManagementFactory.getPlatformMBeanServer() 

Alternatywnie:

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

Właściwie to wystarczy spojrzeć na stronie JMX na wiosnę http://static.springsource.org/spring/docs/1.2.x/reference/jmx.html

Następujące będzie działać zarówno w JBoss instaces 4 i 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> 
Powiązane problemy