java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
2016-04-21 10:17
288 查看
今天学习spring+cxf的时候遇到一个问题:在web.xml中配置了spring的上下文监听器:
Xml代码
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
随后启动tomcat服务器,控制台提示如下错误:
Java代码
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
这种错误意思很明确:找不到“ org.springframework.web.context.ContextLoaderListener”这个类,ContextLoaderListener这个类是在spring-web.jar包下,我仔细检查了项目jar环境,发现该jar包确实存在,而且也能找到编译后的ContextLoaderListener.class文件。
当时很疑惑,随后去网上找答案,终于发现问题根源:
Java代码
Java虚拟机是根据Java ClassLoader(类加载器)决定如何加载Class。
系统默认提供了3个ClassLoader
Root ClassLoader,ClassPath Loader,Ext ClassLoader
我们也可以编写自己的ClassLoader,去加载特定环境下的Jar文件。
能不能加载Jar,加载哪里的Jar,是由ClassLoader决定的。
楼主的问题可能是 导入的仅仅是jar包的引用,例如在eclipse中通过build path加进user lib……(类似快捷方式)
这种在Java Application中没问题,但在web Application中可能会出现找不到类的异常。
在WEB Application中jar包最好放在webroot或webcontent下的lib文件夹内,特别是xml中用到的jar包。
因为我是通过eclipse的build path直接引用的jar包,没有把jar文件拷贝到lib目录下。
随后我将所需的jar包全部拷贝到WEB-INF/lib下,再重新启动tomcat便能顺利通过了。
还有可能
1.清空Tomcat安装路径下的webapps文件夹已经发布过的项目!
2.jdk版本问题,
Xml代码
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
随后启动tomcat服务器,控制台提示如下错误:
Java代码
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
这种错误意思很明确:找不到“ org.springframework.web.context.ContextLoaderListener”这个类,ContextLoaderListener这个类是在spring-web.jar包下,我仔细检查了项目jar环境,发现该jar包确实存在,而且也能找到编译后的ContextLoaderListener.class文件。
当时很疑惑,随后去网上找答案,终于发现问题根源:
Java代码
Java虚拟机是根据Java ClassLoader(类加载器)决定如何加载Class。
系统默认提供了3个ClassLoader
Root ClassLoader,ClassPath Loader,Ext ClassLoader
我们也可以编写自己的ClassLoader,去加载特定环境下的Jar文件。
能不能加载Jar,加载哪里的Jar,是由ClassLoader决定的。
楼主的问题可能是 导入的仅仅是jar包的引用,例如在eclipse中通过build path加进user lib……(类似快捷方式)
这种在Java Application中没问题,但在web Application中可能会出现找不到类的异常。
在WEB Application中jar包最好放在webroot或webcontent下的lib文件夹内,特别是xml中用到的jar包。
因为我是通过eclipse的build path直接引用的jar包,没有把jar文件拷贝到lib目录下。
随后我将所需的jar包全部拷贝到WEB-INF/lib下,再重新启动tomcat便能顺利通过了。
还有可能
1.清空Tomcat安装路径下的webapps文件夹已经发布过的项目!
2.jdk版本问题,
相关文章推荐
- Spring的split()函数引发的错误
- JDK API 下载
- 【Leetcode】:319. Bulb Switcher 问题 in JAVA
- Java类加载器 ClassLoader的解析
- Java enum的用法详解
- Spring AOP不拦截从对象内部调用的方法原因
- JAVA四大域对象
- spring InitializingBean接口
- Java调用批处理文件(.bat)
- Java操作ffmpeg--截取视频
- 安卓应用开发Eclipse目录结构
- java定时器配置
- jvm虚拟机的故事之(我是一个Java class)
- 正确使用Java的foreach语句
- myeclipse的jre与安装的jre不同之处
- Spring:完全通过程序控制Spring事务
- Java倒计时实例
- myeclipse使用SVN团队开发
- Spring通过构造方法注入的四种方式
- Java 日期注解