2016-11-06 4 views
0

Ich habe Anwendung in Spring + Hibernate implementiert. ORM-Operationen zu optimieren Ich habe von this Tutorial gefolgt Überwachung für Ehcache zu aktivieren:Überwachung von Ehcache über JMX

@EnableWebMvc 
@EnableSpringDataWebSupport 
@EnableCaching 
... 
public class SpringWebConfig extends WebMvcConfigurerAdapter { 

    .... 

    @Bean 
    public EhCacheCacheManager ehCacheManager() { 
     EhCacheCacheManager cacheManager = new EhCacheCacheManager(); 
     cacheManager.setCacheManager((net.sf.ehcache.CacheManager) ehCacheManagerFactory().getObject()); 

     return cacheManager; 
    } 

    @Bean 
    public EhCacheManagerFactoryBean ehCacheManagerFactory() { 
     EhCacheManagerFactoryBean cmfb = new EhCacheManagerFactoryBean(); 
     cmfb.setConfigLocation(new ClassPathResource("ehcache.xml")); 
     cmfb.setShared(true); 
     return cmfb; 
    } 

    @Bean 
    public ManagementService managementService() { 
     return new ManagementService(ehCacheManager().getCacheManager(), mBeanServer(), true, true, true, true); 
    } 


    @Bean 
    public MBeanServer mBeanServer() { 
     MBeanServer bean = ManagementFactory.getPlatformMBeanServer(); 
     return bean; 
    } 
} 

Allerdings kann ich keine ehache Bohnen in JConsole sehen:

enter image description here

Wissen Sie, wenn ich etwas verpasst Statistiken aktivieren?

Antwort

1

Das Problem kommt von der Tatsache, dass Sie einfach die ManagementService erstellen, aber nicht initialisieren.

Ihre managementService-Methode muss die init()-Methode auf dem erstellten ManagementService aufrufen.

Sofern Sie effektiv Zugang müssen die ManagementService für andere Zwecke, als eine Bohne auszusetzen ist nicht erforderlich, und Sie können dies durch eine Nutzung der statischen ManagementService.registerMBeans(CacheManager, MBeanServer, boolean, boolean, boolean, boolean) entweder innerhalb der ehCacheManagerFactory() oder ehCacheManager() Methoden ersetzen.

Die statische Methode erstellt die ManagementService und initialisiert sie.

+0

Ja, es funktioniert. Danke für die Erklärung! – bontade