运行spring mvc web应用程序时出现Tomcat错误

时间:2014-09-04 09:19:47

标签: spring tomcat

实际上我正在使用eclipse在tomcat服务器上运行spring mvc web应用程序但是在启动tomcat时我遇到了以下错误

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

我正在使用以下xml配置文件

  1. Web.xml中

    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd“>

    <display-name>Spring MVC Form Handling</display-name>
    
    <servlet>
        <servlet-name>HelloWeb</servlet-name>
        <servlet-class>
           org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
    
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>HelloWeb</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    

  2. 2.HelloWeb-servlet.xml中

     <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="
       http://www.springframework.org/schema/beans     
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context-3.0.xsd">
    
       <context:component-scan base-package="com.tutorialspoint" />
    
       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          <property name="prefix" value="/WEB-INF/jsp/" />
          <property name="suffix" value=".jsp" />
       </bean>
    
    </bean
    

2 个答案:

答案 0 :(得分:1)

默认情况下,Spring在 /WEB-INF/your-servlet-name-servlet.xml 中查找文件,如果在 init-param 属性中未指定名称为“contextConfigLocation”。 这意味着它获取元素的值并将-servlet.xml附加到它并在WEB-INF中查找它。

例如:

    <servlet>
        <servlet-name>HelloWeb</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/web-application-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

这里Spring选择WEB-INF文件夹下的web-application-config.xml文件,因为这是专门指定的。如果未指定,则会查找/WEB-INF/HelloWeb-servlet.xml,因为“HelloWeb”是servlet名称。

因此请确保在WEB-INF文件夹中包含此文件。

答案 1 :(得分:0)

错误java.io.FileNotFoundException表示无法打开/WEB-INF/HelloWeb-servlet.xml 当位置错误且文件不存在时,这是典型的。请检查文件名是否正确。同时尝试删除斜杠&#39; /&#39;在开始。

修改 如果文件是从同一位置引用的,您也可以尝试仅键入HelloWeb-servlet.xml而不用目录。