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里面,因此指定了一个空文件给他,使上下文只初始化一次。


采用如上配置确实无误,但是项目启动后可正常运行,但是居然抛异常。





追随错误断点,发现。

项目中的初始化文件都正常加载后,发现错误的文件加载,看路径即解决了问题。


xybb__神秘的Could not open ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]_第1张图片


因为这个错误一直修改web.xml文件配置,导致上述描述的定时任务bug,最后发现其实根本不会springmvc了。

其实对于上述错误,如果看懂这个单词也就早解决了~~

有时候是找bug原因的方式不对~~


xybb__神秘的Could not open ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]_第2张图片



ps:有次,朋友让我看项目怎么跑不起来,直接localhost:8080/就可以访问了。

找了找发现他项目叫ROOT~~




你可能感兴趣的:(mvc,Web,web.xml,quartz,springMVC)