2014-04-25 19 views
6

Spring 4.0.3.RELEASE ve EHcache 2.8.1 kullanıyorum. JBoss üzerinde 7.1.1Spring Ehcache MBean İzleme

applicationContext.xml numaralı aşağıdaki yapılandırmada önbelleğim iyi çalışıyor.

<cache:annotation-driven/> 

<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"> 
    <property name="cacheManager" ref="ehcache"/> 
</bean> 

<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> 
    <property name="configLocation" value="/WEB-INF/ehcache.xml"/> 
</bean> 

Şimdi izleme özelliklerini MBean ile eklemek istiyorum. Yapılandırmayı applicationContext.xml'da aşağıdaki gibi değiştirdim - 2 yeni fasülye “managementService” ve “mbeanServer” eklendi, başka bir değişiklik yok. Geçerli yapılandırma budur.

<cache:annotation-driven/> 

<bean id="managementService" 
     class="net.sf.ehcache.management.ManagementService" 
     init-method="init" 
     destroy-method="dispose"> 

     <constructor-arg ref="cacheManager"/> 
     <constructor-arg ref="mbeanServer"/> 
     <constructor-arg index="2" value="true"/> 
     <constructor-arg index="3" value="true"/> 
     <constructor-arg index="4" value="true"/> 
     <constructor-arg index="5" value="true"/> 
</bean> 

<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"> 
    <property name="cacheManager" ref="ehcache"/> 
</bean> 

<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> 
    <property name="configLocation" value="/WEB-INF/ehcache.xml"/> 
</bean>  

<bean id="mbeanServer" class="org.springframework.jmx.support.MBeanServerFactoryBean"> 
    <property name="locateExistingServerIfPossible" value="true"/> 
</bean> 

Bu yapılandırmada, uygulama sunucusunda aşağıdaki hatayı alıyorum.

14:05:32,208 ERROR [org.springframework.web.context.ContextLoader] (MSC service thread 1-1) Context initialization failed: org.springframework.beans.factory.UnsatisfiedDependencyException: **Error creating bean with name 'managementService'** defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Unsatisfied dependency expressed through constructor argument with index 0 of type [net.sf.ehcache.CacheManager]: Could not convert constructor argument value of type [org.springframework.cache.ehcache.EhCacheCacheManager] to required type [net.sf.ehcache.CacheManager]: Failed to convert value of type 'org.springframework.cache.ehcache.EhCacheCacheManager' to required type 'net.sf.ehcache.CacheManager'; nested exception is java.lang.IllegalStateException: **Cannot convert value of type [org.springframework.cache.ehcache.EhCacheCacheManager] to required type [net.sf.ehcache.CacheManager]**: no matching editors or conversion strategy found 

Related cause: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'managementService' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Unsatisfied dependency expressed through constructor argument with index 0 of type [net.sf.ehcache.CacheManager]: Could not convert constructor argument value of type [org.springframework.cache.ehcache.EhCacheCacheManager] to required type [net.sf.ehcache.CacheManager]: Failed to convert value of type 'org.springframework.cache.ehcache.EhCacheCacheManager' to required type 'net.sf.ehcache.CacheManager'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [org.springframework.cache.ehcache.EhCacheCacheManager] to required type [net.sf.ehcache.CacheManager]: no matching editors or conversion strategy found 
+0

Mbean öğelerini kaldırmayı deneyin ve '' ile değiştirin – geoand

cevap

6

Sen managementService fasulye değil cacheManager kurucusuna ehcache fasulye geçmelidir. cacheManager tanımına bakarsanız, ehcache fasulye cacheManager olarak geçirilir. Fabrika çekirdeği, net.sf.ehcache.CacheManager'un bir örneğini sağlayacaktır.