无法加载spring应用程序Context

时间:2012-09-10 21:59:17

标签: spring-mvc

我想加载myapp-servlet.xml作为我的Web应用程序上下文。我既没有定义spring contextLoaderListner也没有定义上下文参数,只定义了调度程序servlet。

   <display-name>myapp</display-name>
    <description/>
    <servlet>
        <servlet-name>myapp</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>myapp</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

配置文件存在于/WEB-INF/myapp-servlet.xml中,我希望它能够被加载。但是我得到了以下异常

SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
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]
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)

我想知道为什么即使没有定义context-param和contextLoaderListener,也会查找默认的applicationContext.xml文件?

2 个答案:

答案 0 :(得分:1)

只需为Spring配置文件添加适当的context-param:

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/myapp-servlet.xml</param-value>
</context-param>

Spring代码中可能有一个默认的配置文件位置......似乎是UTSL的好机会......

答案 1 :(得分:0)

只需添加

<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

到你的 web.xml