SpringMVC常见问题Error configuring application listener of class org.springframework.web.context.Context
愿君学长松,慎勿作桃李。这篇文章主要讲述SpringMVC常见问题Error configuring application listener of class org.springframework.web.context.Context相关的知识,希望能为你提供帮助。
六月 20, 2018 9:43:34 下午 org.apache.catalina.core.StandardContext listenerStart
严重: Error configuring application listener of class org.springframework.web.context.ContextLoaderListener
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1858)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701)
at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:504)
at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:486)
at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:113)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4984)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5584)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1572)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1562)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
使用maven搭建SpringMVC框架时在Tomcat上运行遇到以上问题,java.lang.ClassNotFoundException,个人以为该问题所在应是找不到类,
一、缺少jar包
二、配置文件出错
首先看看maven中是否引入该jar包。
<
dependency>
<
groupId>
org.springframework<
/groupId>
<
artifactId>
spring-core<
/artifactId>
<
version>
4.3.1.RELEASE<
/version>
<
/dependency>
<
dependency>
<
groupId>
org.springframework<
/groupId>
<
artifactId>
spring-web<
/artifactId>
<
version>
4.3.1.RELEASE<
/version>
<
scope>
compile<
/scope>
<
/dependency>
<
dependency>
<
groupId>
org.springframework<
/groupId>
<
artifactId>
spring-webmvc<
/artifactId>
<
version>
4.3.1.RELEASE<
/version>
<
scope>
compile<
/scope>
<
/dependency>
maven的jar包导入情况,检查了一下发现jar没问题
文章图片
这时在检查配置文件,web.xml 配置如下
< welcome-file-list>
< welcome-file> index.jsp< /welcome-file>
< /welcome-file-list>
< listener>
< listener-class> org.springframework.web.context.ContextLoaderListener< /listener-class>
< /listener>
< servlet>
< servlet-name> springmvc< /servlet-name>
< servlet-class> org.springframework.web.servlet.DispatcherServlet< /servlet-class>
< /servlet>
< servlet-mapping>
< servlet-name> springmvc< /servlet-name>
< url-pattern> /< /url-pattern>
< /servlet-mapping>
也没发现什么问题,再网上查找资料,看了一下别人的方案;
解决如下:
项目 —> 属性 -> Deployment Assembly -> Add -> Java Build Path Entries -> 选择Maven Dependencies -> Finish -> OK
把对应的Maven依赖包也发布到tomcat,调试时会自动把那些jar发布到指定目录下,tomcat也能找到那些jar了
【SpringMVC常见问题Error configuring application listener of class org.springframework.web.context.Context】但是我的项目却没有找到Maven Dependedcies选项;
文章图片
what???咋整?
若引入了,则有可能是因为tomcat发布时没有引入该jar包。
解决如下:
把对应的Maven依赖包也发布到tomcat,调试时会自动把那些jar发布到指定目录下,tomcat也能找到那些jar了。
关闭eclipse,重新部署运行Tomcat,问题就解决了!
但是问题又来了
2018-06-20 22:33:11,487 [org.springframework.web.context.ContextLoader]-[ERROR] Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
无法找到XML文件,what?
查看了配置
文章图片
仔细看了一下,是无法找到/WEB-INF下的配置?
文章图片
将配置文件复制到WEB-INF下,就可运行成功,为什么呢?maven的配置文件不应都放在resources下吗?
文章图片
SpringMVC的依赖maven配置
< !--日志包--> < dependency> < groupId> junit< /groupId> < artifactId> junit< /artifactId> < version> 3.8.1< /version> < scope> test< /scope> < /dependency> < dependency> < groupId> org.slf4j< /groupId> < artifactId> slf4j-log4j12< /artifactId> < version> 1.7.21< /version> < /dependency> < !--j2ee相关包 servlet、jsp、jstl--> < dependency> < groupId> javax.servlet< /groupId> < artifactId> javax.servlet-api< /artifactId> < version> 3.1.0< /version> < /dependency> < dependency> < groupId> javax.servlet.jsp< /groupId> < artifactId> jsp-api< /artifactId> < version> 2.2< /version> < /dependency> < dependency> < groupId> javax.servlet< /groupId> < artifactId> jstl< /artifactId> < version> 1.2< /version> < /dependency> < !--mysql驱动包--> < dependency> < groupId> mysql< /groupId> < artifactId> mysql-connector-java< /artifactId> < version> 5.1.35< /version> < /dependency> < !--spring相关包--> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-web< /artifactId> < version> 4.3.1.RELEASE< /version> < /dependency> < dependency> < groupId> org.springframework< /groupId> < artifactId> spring-webmvc< /artifactId> < version> 4.3.1.RELEASE< /version> < /dependency> < !--其他需要的包--> < dependency> < groupId> org.apache.commons< /groupId> < artifactId> commons-lang3< /artifactId> < version> 3.4< /version> < /dependency> < dependency> < groupId> commons-fileupload< /groupId> < artifactId> commons-fileupload< /artifactId> < version> 1.3.1< /version> < /dependency> < /dependencies>
推荐阅读
- 背水一战 Windows 10 (113) - 锁屏: 将 Application 的 Badge 通知和 Tile 通知发送到锁屏, 将 secondary tile 的 Badge 通知和 Til
- android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app
- 4.App测试与Web测试的不同
- 附录B.Spring Boot 配置文件application.properties
- SpringMVC中@RequestMapping参数设置
- 每日踩坑 2018-06-19 AutoMapper简单性能测试
- Spring boot 源码分析SpringApplication.run(上)
- 数据结构HashMap(Android SparseArray 和ArrayMap)
- MyBatisPlus的通用查询,简直可以丢弃Dao和mapper.xml了