【问题标题】:IOException parsing XML documentIOException 解析 XML 文档
【发布时间】:2018-03-29 13:15:08
【问题描述】:
    Root Cause

org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/web-inf/dispatcher-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/web-inf/dispatcher-servlet.xml]
    org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344)

web.xml

    <?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">


  <display-name>spring-mvc-crud-demo</display-name>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

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


  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
  </servlet-mapping>


  <jsp-config>
    <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <page-encoding>UTF-8</page-encoding>
    </jsp-property-group>
  </jsp-config>

</web-app>

应用程序找不到 dispatcher-servlet.xml。我想 dispatcher-servlet.xml 在正确的目录中。

我一直在搜索stackOverFlow,但它没有帮助。 这很奇怪,因为它适用于 Windows,这个问题出现在 Mac 上。

【问题讨论】:

    标签: java spring tomcat intellij-idea


    【解决方案1】:

    我更习惯用大写的WEB-INF。无论如何尝试用这样的前导斜杠定义位置:

    <param-value>/WEB-INF/dispatcher-servlet.xml</param-value>
    

    【讨论】:

    • 当我将 web-inf 更改为 WEB-INF 时,我遇到了其他问题:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“mainController”的 bean 时出错:通过字段“userService”表达的依赖关系不满足
    • 那么您似乎正在取得进展。我建议保留正斜杠并深入了解您的 dispatcher-servlet.xml。缺少 userService bean。要么在 dispatcher-servlet.xml 中描述这个 bean,要么通过注解 @Service 并在 dispatcher-servlet.xml 中添加 元素对它进行组件扫描
    • 我在 dispatcher-servlet.xml 中有 ,所有的 bean 都被注释了(例如 userService 有 @Service)。这个项目在 Windows 上运行良好(我在 mac 上有问题),所以我对 Java 代码没有任何问题。我的配置有问题
    • 那么它可能与您在 Mac 上的应用程序的类路径有关。我不知道您使用的是哪个构建系统,但我猜您在某处有一个类目录。检查 userService bean 的类文件是否存在。
    猜你喜欢
    • 2011-08-21
    • 1970-01-01
    • 2020-06-26
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 1970-01-01
    相关资源
    最近更新 更多