2012-09-10 117 views
1

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

,我想知道为什么默认applicationContext.xml文件中寻找,即使是没有定义的context-param和ContextLoaderListener的?

回答

1

只需添加相应的context-param您的Spring配置文件:

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

有可能是在春节代码默认config文件......似乎是个不错的机会,UTSL ...

+0

但是不应该默认选择myapp-servlet.xml,按照Spring文档http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/mvc.html# mvc-servlet – tintin

+1

是的你是对的,它应该像你说的那样工作。我会搜索你的'src'树寻找'applicationContext.xml',因为可能有一个单元测试试图通过指定该XM文件来手动加载ApplicationContext。在tomcat无法读取的情况下,检查myapp-servlet.xml文件的权限。 – nickdos

相关问题