Exception starting filter encoding java.lang.NoClassDefFoundError

Exception starting filter encoding java.lang.NoClassDefFoundError: org/springframework/context/EnvironmentAware at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)	

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:3222) 
at 
 org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1409)	at 
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1897)	at 
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:17
1) at java.lang.ClassLoader.defineClass1(Native Method) at 
java.lang.ClassLoader.defineClass(ClassLoader.java:763) at 
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at 
org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.
java:3222) at 
org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:1409) at 
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1897) at 
org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1771) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763)

 一开始看见这个错误我是懵逼了的,第一次见,而且我的项目前面是正常运行起来了的,只是突然就在tomcat启动时报了错误,(我在同一个tomcat上跑了两个web项目,另一个完好无损,而突然出错这个连webapp目录下的index.jsp都访问不了),我一开始怀疑我不经意把代码修改了,可是我对照另一个项目仔细检查发现完全没毛病啊,找了很多博客,尝试了很多方法:

1、直接打成war包放到tomcat--->失败

2、更换tomcat--->结果还是失败

3、更换jdk--->失败

4、修改myeclipse编译器和Dynamic Web Module 版本--->失败

毫无例外,浏览器报的错误全是,tomcat/webapp目录下不存在我访问的action或者jsp,控制台只是在启动时报了上面那个错误,所以我一度以为我的路径出了问题,然后拼命检查、测试,然鹅可并不是这个问题。

最后嗯,又是一次崩溃的边缘,我尝试了一下去pom.xml里把org/springframework/context/里说的context依赖加上了,然后出结果了,这次报的是:org/springframework/beans/同样pom.xml添加相关依赖。。。。。就这样后边还加了几个依赖,直到控制台不报错了,最后去浏览器尝试了一下,果然就是这个问题,好了解决收工。

下面是之后导入的jar包:

<groupId>org.springframework</groupId>
    <artifactId>spring-beans</artifactId>
    <version>4.3.0.RELEASE</version>
	</dependency>
	<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>4.3.0.RELEASE</version>
	</dependency>
	<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>4.3.0.RELEASE</version>
	</dependency>


总结一下,这个问题类似ClassNotFoundException,缺少jar包,导入依赖就完事;

我一开没注意到这个问题的原因是,刚开始我在maven dependencies里找到了报错所说的context依赖jar包的,所以我一直没管它,只是拼命查路径问题。

最终看到别人的解释是maven加载有点问题,(我一开始没有导入这些jar包也能完美运行,后面突然又不行了,我至今只能是有个大概猜想,希望来个大佬指点下迷津,emmmm)

猜你喜欢

转载自blog.csdn.net/bokerr/article/details/82263635