2012-01-18 91 views
2

我试图实现缓存弹簧3.0的Ehcache与Spring Configruation +的JdbcTemplate

下面是相关的整合代码:

<bean id="cacheManager" class="net.sf.ehcache.CacheManager"> 
    <constructor-arg index="0" type="java.net.URL" value="classpath:ehcache.xml"/> 
</bean> 

在应用程序context.xml文件

我有一个有效的ehcache.xml文件,但它从未读取,因为应用程序炸弹在它到达那里之前,我收到的错误如下:

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [net.sf.ehcache.CacheManager] for bean with name 'cacheManager' defined in ServletContext resource [/WEB-INF/spring/application-context.xml]; nested exception is java.lang.ClassNotFoundException: net.sf.ehcache.CacheManager 
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1208) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:568) 
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1277) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:302) 
at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:185) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:805) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:762) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:680) 
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:556) 
... 30 more 
Caused by: java.lang.ClassNotFoundException: net.sf.ehcache.CacheManager 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) 
at org.springframework.util.ClassUtils.forName(ClassUtils.java:258) 
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1229) 
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1200) 

有没有人有我做错什么的想法?

回答

0

似乎你应该添加ehcache-core jar到你的classpath中......注意添加正确的版本。

编辑:

注意ehcacheartifactId,而不是ehcache-core使用。

<dependency> 
    <groupId>net.sf.ehcache</groupId> 
    <artifactId>ehcache</artifactId> 
    <version>1.6.1</version> 
</dependency> 

运行MVN重新安装,确保正确的罐子驻留在你的本地库,它包含了正确的下课。

+0

我目前的Ehcache的版本是1.6.1,虽然我甲肝加入了Ehcache-1.6.1.jar BT仍然没有工作,我应该发布我的应用程序context.xml文件。我认为我做错了dere。 – Anurag 2012-01-18 09:02:28

+0

我不认为发布你的applicationContext.xml会有所帮助。我添加了你应该使用的确切的maven依赖。尝试一下。 – yair 2012-01-18 12:58:26

0

请将您的ehcache jar添加到web-inf/lib目录。

如果您使用的是Maven,而不是将其添加到您的pom.xml中。

<dependency> 
    <groupId>net.sf.ehcache</groupId> 
    <artifactId>ehcache</artifactId> 
    <version>2.4.7</version> 
</dependency> 
+0

我已经在buildpath中添加了1.6.1 jar – Anurag 2012-01-18 07:25:05

+0

@Auurag你的pom.xml文件内容是什么?它是否包含依赖关系? – 2012-01-18 07:30:45

+0

@AravindA是的,先生, net.sf.ehcache 的Ehcache核心 1.6.1 Anurag 2012-01-18 09:30:03

0

如果您使用eclipse启动项目,请检查是否已将ehcache库添加到“Deployment Assembly”列表中。

打开项目的属性对话框 - >“部署程序集”,并在那里添加lib。

心连心