我在spring mvc框架中探索缓存。按照互联网上的指南here或here,我正在配置:
<?xml version='1.0' encoding='UTF-8' ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cache="http://www.springframework.org/schema/cache"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd
http://www.springframework.org/schema/cache
http://www.springframework.org/schema/cache/spring-cache.xsd">
<cache:annotation-driven />
... other configuration are omitted....
</beans>
在添加缓存配置之前,我的网络应用程序正常运行,现在,我的网络应用程序以错误开始:
java.lang.NoClassDefFoundError: org/springframework/cache/interceptor/CacheInterceptor
不确定我做错了什么?
答案 0 :(得分:0)
NoClassDefFoundError 只是当java无法找到另一个库使用的某个类时抛出的异常。
所有这些意味着当它被抛出时你只需要在类路径上获取它。您可以通过访问图书馆来确保它在那里 - &gt; maven依赖(如果你使用maven) - &gt;然后转到正在抛出的noclassdef的位置,在你的情况下它将在org / springframework / cache / interceptor / CacheInterceptor,这只是你知道为什么你得到这个错误,你现在不应该看到它。
至于如何解决这个问题,可能会因为三件事情而发生:
你的maven依赖关系不在部署程序集上(库在项目中,但不在服务器上),尽管如果是这样的话,春天可能根本不会工作。
您没有依赖项,请将其添加到pom.xml:
org.springframework 春天上下文 4.1.4.RELEASE
您有春天版本冲突,所有版本标签都相同。