Spring如何在web.xml中使用WebApplicationContex

时间:2016-05-28 08:06:35

标签: spring servlets web.xml

我使用Spring并编写了以下web.xml

 <web-app>
 <display-name>Archetype Created Web Application</display-name>
 <servlet>
 <servlet-name>appServlet</servlet-name>
 <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
 <init-param>
 <param-name>configContextLocation</param-name>
 <param-value>/WEB-INF/spring/servlet-context.xml</param-value>
 </init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

当我执行网络时,我收到错误

org.springframework.beans.factory.BeanDefinitionStoreException: IOException
parsing XML document from ServletContext resource [/WEB-INF/appServlet-
servlet.xml]; nested exception is java.io.FileNotFoundException: Could not  
open ServletContext resource [/WEB-INF/appServlet-servlet.xml]

我在论坛中读到它是什么,因为我需要一个appServlet-servlet.xml,因为我的servlet叫做appServlet。

我有一些问题。我是否已调用我的servlet-context.xml appServlet-servlet.xml?

如何修复我的web.xml?

2 个答案:

答案 0 :(得分:0)

http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-servlet

从Spring文档中可以看出:

在初始化DispatcherServlet时,Spring MVC在Web应用程序的WEB-INF目录中查找名为[servlet-name] -servlet.xml的文件

servlet-context.xml更改为appServlet-servlet.xml并直接放入WEB-INF下。

引导弹簧上下文的更好方法是定义一个侦听器

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

中定义Spring上下文的位置
<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/spring/servlet-context.xml</param-value>
</context-param>

答案 1 :(得分:0)

Spring没有从web.xml引导,因为你没有魔法:

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

我认为你必须有一些java配置或弹簧启动。但结果是,它不使用web.xml配置。