从spring创建EhCache缓存的问题

时间:2010-01-13 23:28:13

标签: java spring ehcache

阅读EhCacheManagerFactoryBeanEhCacheFactoryBean的javadoc我认为:

<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:configLocation="classpath:ehcache.xml"/>

<bean id="locationCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean"
      p:cacheManager-ref="cacheManager"
      p:cacheName="locationCache"/>

会创建一个我可以@Autowired的缓存。但我必须遗漏一些东西,因为这是我得到的:

  

异常将上下文初始化事件发送到类org.springframework.web.context.ContextLoaderListener的侦听器实例   org.springframework.beans.factory.BeanCreationException:在ServletContext资源[/WEB-INF/applicationContext.xml]中定义名称为'locationCache'的bean时出错:init方法的调用失败;嵌套异常是java.lang.NoSuchMethodError:net.sf.ehcache.Cache。(Ljava / lang / String; ILnet / sf / ehcache / store / MemoryStoreEvictionPolicy; ZLjava / lang / String; ZJJZJLnet / sf / ehcache / event / RegisteredEventListeners; LNET / SF / ehcache的/引导/ BootstrapCacheLoader; II)V

我尝试过ehcache 1.7.2,1.6.2和1.5.0。

如果我在ehcache.xml中指定<cache name="locationCache" />但我更喜欢在applicationsContext.xml中完成配置,那么它是有效的

<cache name="locationCache" /> 

1 个答案:

答案 0 :(得分:3)

缺少的构造函数属于Ehcache 1.3,它仍然存在于较新的版本中。可能是,你对dependecnies有一些问题。如果您使用maven,请尝试mvn dependency:tree -Dverbose=true并查找冲突。