引起:java.lang.NoClassDefFoundError:org / springframework / cache / support / AbstractCacheManager

时间:2015-01-10 11:17:45

标签: spring maven ehcache

大家好,我尝试将ehcache包含在我的春季项目中并收到此错误

  

引起:java.lang.NoClassDefFoundError:   org / springframework / cache / support / AbstractCacheManager at   java.lang.ClassLoader.defineClass1(Native Method)at   java.lang.ClassLoader.defineClass(ClassLoader.java:800)at   java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)     在java.net.URLClassLoader.defineClass(URLClassLoader.java:449)at   java.net.URLClassLoader.access $ 100(URLClassLoader.java:71)at   java.net.URLClassLoader $ 1.run(URLClassLoader.java:361)at   java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)at   java.security.AccessController.doPrivileged(Native Method)at   java.net.URLClassLoader.findClass(URLClassLoader.java:354)at   org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1191)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1669)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)     at java.lang.ClassLoader.defineClass1(Native Method)at   java.lang.ClassLoader.defineClass(ClassLoader.java:800)at   java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)     在java.net.URLClassLoader.defineClass(URLClassLoader.java:449)at   java.net.URLClassLoader.access $ 100(URLClassLoader.java:71)at   java.net.URLClassLoader $ 1.run(URLClassLoader.java:361)at   java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)at   java.security.AccessController.doPrivileged(Native Method)at   java.net.URLClassLoader.findClass(URLClassLoader.java:354)at   org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1191)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1669)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)     在org.springframework.util.ClassUtils.forName(ClassUtils.java:257)     在   org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408)     在   org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1271)     在   org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1242)     ... 37更多引起:java.lang.ClassNotFoundException:   org.springframework.cache.support.AbstractCacheManager at   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)     在   org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)     ......还有65个

这是我的ehcache bean

    <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
    <property name="configLocation" value="classpath:config/ehcache.xml"/>
    <property name="shared" value="true"/>
    </bean>

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

这是我的依赖项,在这种情况下可以有价值

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.5.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>3.0.5.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>3.0.5.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.0.5.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>3.2.13.RELEASE</version>
    </dependency>

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

我的依赖项/ bean声明有什么问题? 我找到类AbstractCacheManager但是在非spring maven依赖项中。

2 个答案:

答案 0 :(得分:0)

打开项目属性&gt;部署程序集并添加maven依赖项。

答案 1 :(得分:0)

类AbstractCacheManager不是spring的3.0.5版本的一部分。

Maven central的第一次出现是版本3.1.0:

spring documentation确认了这一点:

  

从3.1版开始,Spring Framework提供了透明的支持   将缓存添加到现有的Spring应用程序中....