2012-01-18 67 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。

心連心