当加载我的应用程序spring context时,我得到以下错误(仅在Linux机器上,在Windows上似乎以某种方式工作):
无法读取架构文档“http://www . spring framework . org/schema/tool/spring-tool-4.1 . xsd”,因为1)找不到该文档;2)无法读取文档;3)文档的根元素不是xsd:schema。
Stacktrace如下:
org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Loading XML bean definitions from class path resource [META-INF/spring/score/context/scoreRepositoryContext.xml]
2015-03-30 11:07:49:336 127901 [main] WARN org.springframework.beans.factory.xml.XmlBeanDefinitionReader - Ignored XML validation warning
org.xml.sax.SAXParseException; systemId: http://www.springframework.org/schema/tx/spring-tx.xsd; lineNumber: 12; columnNumber: 150; schema_reference.4: Failed to read schema document 'http://www.springframework.org/schema/tool/spring-tool-4.1.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.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.warning(ErrorHandlerWrapper.java:99)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:433)
at
...
at org.springframework.shell.Bootstrap.main(Bootstrap.java:58)
Caused by: java.net.ConnectException: Connection timed out
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)
知道为什么吗?
问题几乎可以肯定是 Spring 库版本问题。
更新Linux机器上的Spring库:
确保类路径上没有任何冲突的jar(不同的spring版本)。如果您使用spring 3.0,那么应该没有大的胖spring.jar(即spring 2.5及之前的版本)。接下来,如果您要创建包含所有包的超级jar,请确保您也复制了xsd文件。
[圖片來源:Marten Deinum(如上),Tristan和Michael Lee通過刪除網絡連線檢查建議來改善這個答案。