我想加载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文件?
答案 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