Configuring EHCache for Spring3.1.1 and Hibernate
Solution 1
You need to reference your cacheManager property differently. This is how I have it working:
<cache:annotation-driven />
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
<property name="cacheManager"><ref local="ehcache"/></property>
</bean>
<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:configLocation="classpath:ehcache.xml"/>
Solution 2
@aweigold 's answer is perfect but a clearer solution can be achieved if you pass the reference of "ehcache" bean using "p:cacheManager-ref".
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"
p:cacheManager-ref="ehcache" />
Solution 3
Include the below dependency
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.3.1</version>
</dependency>
Solution 4
The same as in last post only without mistake in attribute name:
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager" p:cacheManager-ref="ehcache" />
Vincent Ramdhanie
Vincent is a Software Engineer with over 18 years of experience building software in a variety of environments. When not building software Vincent is a lecturer for the University of London's external programme. Since 2014 Vincent was a mentor for Thinkful.com helping students navigate their way to become web developers. He also contributes to the curriculum at Thinkful for React, Node and Data Science. 👨🏾💻 - Currently work at Teamflow 📬 - Email Me 🤔 - Mentor at Thinkful.com 👨🏾🏫 - I am a lecturer at SBCS Blog - Things I learn the hard way 🏡 - My home page
Updated on June 05, 2022Comments
-
Vincent Ramdhanie almost 2 years
I am attempting to enable object caching in an existing Spring 3.1.1 application with Hibernate 3.5.5. I am using ehcache 2.2.0. In my applicationContext I have added the configuration to switch on caching with EHCache.
<cache:annotation-driven /> <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager" p:cache-manager="ehcache" /> <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:config-location="ehcache.xml" />
I then created the ehcache.xml file:
<diskStore path="java.io.tmpdir" /> <defaultCache eternal="false" maxElementsInMemory="1000" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0" timeToLiveSeconds="0" memoryStoreEvictionPolicy="LRU"/> <cache name="studentCache" eternal="false" maxElementsInMemory="10000" overflowToDisk="false" diskPersistent="false" timeToIdleSeconds="0" timeToLiveSeconds="0" memoryStoreEvictionPolicy="LRU" />
I added the necessary dependencies in the pom.xml file for ehcache. But now I am getting this error:
Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.lang.String' to required type 'net.sf.ehcache.CacheManager' for property 'cacheManager'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [net.sf.ehcache.CacheManager] for property 'cacheManager': no matching editors or conversion strategy found
Does anyone have any idea what is causing this?
-
emrahkocaman about 11 yearsThanks @Bogdan, I've fixed the typo.