SAXParseException,文档的根元素不是<xsd:schema>
SAXParseException, the root element of the document is not <xsd:schema>
这是我的 spring-security.xml
的 header :
<?xml version="1.0" encoding="UTF-8" ?>
<b:beans xmlns:b="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sec="http://www.springframework.org/schema/security"
xmlns:oauth="http://www.springframework.org/schema/security/oauth2"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/security/oauth2
http://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd ">
启动服务器时,提示这个错误:
org.xml.sax.SAXParseException: schema_reference.4: Failed to read
schema document
'http://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd',
because 1) could not find the document; 2) the document could not be
read; 3) the root element of the document is not <xsd:schema/>.
我对此的看法:
link有效且文档存在
我可以阅读它,如果我将这个 xsd 放在我的本地类路径中,我什至可以重现这个错误。所以这不是网络问题。
没错,文件的开头是 <xs:schema>
而不是 <xsd:schema>
。但来源看起来合法。
为什么会出现此错误,我该如何摆脱它?
更改所有模式位置以使用无版本 URI,这些 XSD 嵌入在 Spring JAR 中。
因为您使用的是指向 XSD 的版本化链接,如果您的应用程序无法在类路径中找到该特定版本,它就会中断。
See this SO answer for more details.
这是我的 spring-security.xml
的 header :
<?xml version="1.0" encoding="UTF-8" ?>
<b:beans xmlns:b="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sec="http://www.springframework.org/schema/security"
xmlns:oauth="http://www.springframework.org/schema/security/oauth2"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-3.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/security/oauth2
http://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd ">
启动服务器时,提示这个错误:
org.xml.sax.SAXParseException: schema_reference.4: Failed to read schema document 'http://www.springframework.org/schema/security/spring-security-oauth2-2.0.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema/>.
我对此的看法:
link有效且文档存在
我可以阅读它,如果我将这个 xsd 放在我的本地类路径中,我什至可以重现这个错误。所以这不是网络问题。
没错,文件的开头是
<xs:schema>
而不是<xsd:schema>
。但来源看起来合法。
为什么会出现此错误,我该如何摆脱它?
更改所有模式位置以使用无版本 URI,这些 XSD 嵌入在 Spring JAR 中。
因为您使用的是指向 XSD 的版本化链接,如果您的应用程序无法在类路径中找到该特定版本,它就会中断。
See this SO answer for more details.