【问题标题】:IOException parsing XML document from ServletContext resource [/WEB-INF/spring-dispatcher-servlet.xml]从 ServletContext 资源 [/WEB-INF/spring-dispatcher-servlet.xml] 解析 XML 文档的 IOException
【发布时间】:2020-06-26 00:26:14
【问题描述】:

从控制台收到此错误:

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

这是我收到的错误:

      <?xml version="1.0" encoding="UTF-8"?>
   <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
id="WebApp_ID" version="2.5">
  <display-name>fj21-tarefas</display-name>
  <welcome-file-list>

        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>

      </welcome-file-list>
      <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>


        <init-param>
          <param-name>contextConfigLocation</param-name>
         <param-value>/WEB-INF/spring-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    </web-app>

我在做

<init-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>/WEB-INF/spring-context.xml</param-value>
</init-param>

从 springmvc 更改默认上下文,但它不起作用。已经在这里接受了一些建议,将 servlet-name 标记写入文件 name-context.xml 约定,同样的错误。

【问题讨论】:

  • 我认为你应该在值之前添加 file:。文件:/WEB-INF/spring-context.xml
  • @HarshalKhachane 现在它给了我之前的错误:_GRAVE: StandardWrapper.Throwable org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from URL [file:/WEB-INF/弹簧上下文.xml];嵌套异常是 java.io.FileNotFoundException: \WEB-INF\spring-context.xml _

标签: java xml spring spring-mvc servlets


【解决方案1】:

您应该尝试更改 servlet 名称。预期的 Spring web-context 元数据 XML 文件名应为 servletname-servlet.xml,这是 Spring 4 之前的预期文件名,不确定它是否在 Spring 5 中更改。 .由于您的 servlet 名称是 springmvc,因此文件名应该是 springmvc-servlet.xml

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

<servlet-mapping>
    <servlet-name>springmvc</servlet-name>
    <url-pattern>/app-name/*</url-pattern>
</servlet-mapping>

【讨论】:

  • 错误一直存在....ERROR ContextLoader:319 - Context initialization failed org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/spring-dispatcher-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/spring-dispatcher-servlet.xml]
  • 不只是 spring-context.xml 和 web.xml。
  • 可以共享代码库吗?可能在 GitHub 上。
【解决方案2】:

让你的 web.xml 看起来像这样,直接取自 Spring 文档:

<web-app>

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

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

    <servlet>
        <servlet-name>app</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value></param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>app</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

</web-app>

【讨论】:

  • 参数值为空。
  • 试一试:)
猜你喜欢
  • 2014-11-09
  • 2015-08-08
  • 2015-04-28
  • 1970-01-01
  • 2018-12-18
  • 1970-01-01
  • 2016-02-22
  • 1970-01-01
  • 2017-07-04
相关资源
最近更新 更多