本文主要是介绍xybb__神秘的Could not open ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml],希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Error : Could not open ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]
对于web项目集成springmvc框架上下本的初始化
参考开涛哥的博客http://jinnianshilongnian.iteye.com/blog/1602617
项目使用spring-quartz定时任务发现任务居然定时执行2次,最大的可能性就是此xml配置被执行了2次。
最终找到是web.xml配置的spring上下文初始化环境所致。
在web监听中初始化一次,又在org.springframework.web.servlet.DispatcherServlet中初始化一次。
一,web容器初始化,springmvc继承
<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/mvc-servlet.xml</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><listener><listener-class>com.xybb.system.listener.SystemInitListener</listener-class></listener>
二,org.springframework.web.servlet.DispatcherServlet初始化
<!--spring servlet拦截--><servlet><servlet-name>dispatcher</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/config/dispatcher-servlet.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>dispatcher</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
如果不指定init-param初始化文件,则默认找WEB-INF/[servlet-name名称]+servlet.xml文件初始化
我的配置都放到上面的mvc-servlet.xml里面,因此指定了一个空文件给他,使上下文只初始化一次。
采用如上配置确实无误,但是项目启动后可正常运行,但是居然抛异常。
追随错误断点,发现。
项目中的初始化文件都正常加载后,发现错误的文件加载,看路径即解决了问题。
因为这个错误一直修改web.xml文件配置,导致上述描述的定时任务bug,最后发现其实根本不会springmvc了。
其实对于上述错误,如果看懂这个单词也就早解决了~~
有时候是找bug原因的方式不对~~
ps:有次,朋友让我看项目怎么跑不起来,直接localhost:8080/就可以访问了。
找了找发现他项目叫ROOT~~
这篇关于xybb__神秘的Could not open ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!