在Tomcat 服务器运行错误时出现如下错误:
org.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 69; schema_reference.4: 无法读取方案文档 ‘https://www.springframework.org/schema/beans/spring-beans.xsd’, 原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是 xsd:schema。
首先这是这是一个动日志异常的错误,这时你需要检查你的配置文件是否配置错误了,需要检查xml的头文件的节点里面的属性是否配置对。xml文件配置错误直接到了上下文的初始化失败(Context initialization failed)
我遇到的问题尝场景就是:
我在实验室配置好了环境,并且进行成功部署地部署到Tomcat服务器上面,可以正常地运行了,回到宿舍之后(电脑没有联网)我把Tomcat上的文降remove了,重新部署了到Tomcat服务器上面运行,结果报了上面的错误!!!(如果你是连着网出现上面的问题,你可以试试重启IDE)
打开xml文件可以看到,整个beans节点上属性都是http://www开头,说明xml在初始化的时候需要在网络找相关的资源来完成从初始化。这些xsd文件的作用可以查看这篇文章【Spring配置文件头的作用】。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
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
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
https://www.springframework.org/schema/mvc/spring-mvc.xsd">
进过一番的查找原因,终于找到,在电脑没有了联网的情况下,需要手动添加XML文件的Schema约束。
Eclipse手动添加XML文件的Schema约束步骤:
Windows → preferences → XML → XML Catalog → (User Specified Entries) → Add···
对应的xsd文件可以在Spring PAI包中的schema文件夹下可以找到!
注意:
导入的xsd文件文件版本要和你的Spring版本一致,否则还会出现其他的错误
在beans中使用到多少个xsd文件就需要手动引入多少个xsd文件
导入文件,在此部署到Tomcat服务器上运行,问题解决啦!