2

我想加载 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>

config 文件存在于 /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 文件?

4

2 回答 2

0

只需为您的 Spring 配置文件添加适当的上下文参数:

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

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

于 2012-09-10T22:19:02.470 回答
0

只需添加

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

到您的 web.xml

于 2021-04-09T12:42:26.453 回答