org.xml.sax.SAXParseException: src-import.0: Failed to read imported schema document 'null'
2015-04-11 10:27
1166 查看
公司项目用的是ssh,最近发现每次tomcat启动的时候,控制台总是出现下面的这个异常
出现这个异常并没有影响程序的运行,就是看着很不爽。
根据异常分析和网上查找结果表示该异常基本上确定是spring配置文件头引入xsd错误造成,即无法正确的访问到xsd文件,原因大致有三个:
一:网络异常,无法访问到配置spring的xsd文件网址
二:头文件引入的xsd文件与使用spring版本不一致
三:引入的xsd文件不存在(指向本地)
我的spring文件头如下:
在我的配置中,点击每一个http链接都可以访问到xsd文件信息,并且网络正常,因此排除第一个原因。
项目中使用的是spring3.2版本,考虑到第二个原因,将配置文件做以下修改:
指定版本号之后,点击http链接同样可以根据网络访问到配置文件信息,但程序异常依然存在。
考虑到可能是网络的原因无法访问,考录将sping的xsd指定为本机文件,在spring的jar中可以找到对应的xsd文件,
修改如下:
问题依旧!本地文件真实存在的。
百思不得其解。
又在网上遨游了半天,无意中发现了一个博友好像因为xercesImpl.jar版本出现过这个问题,赶紧做个尝试。
果不其然,换了一个高版本的xercesImpl.jar后,异常奇迹般的消失了。
经查找发现xercesImpl.jar主要用来解析XML文件,与我的问题也刚好对应,应该就是这个jar的问题了。
至此,问题解决。
2015-04-10 09:13:50 [org.springframework.web.context.ContextLoader]-[INFO] - Root WebApplicationContext: initialization started 2015-04-10 09:13:50 [org.springframework.web.context.support.XmlWebApplicationContext]-[INFO] - Refreshing Root WebApplicationContext: startup date [Fri Apr 10 09:13:50 CST 2015]; root of context hierarchy 2015-04-10 09:13:50 [org.springframework.beans.factory.xml.XmlBeanDefinitionReader]-[INFO] - Loading XML bean definitions from class path resource [applicationContext.xml] 2015-04-10 09:13:50 [org.springframework.beans.factory.xml.XmlBeanDefinitionReader]-[WARN] - Ignored XML validation warning org.xml.sax.SAXParseException: src-import.0: Failed to read imported schema document 'null'. at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:232) at org.apache.xerces.util.ErrorHandlerWrapper.warning(ErrorHandlerWrapper.java:141) at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:358) at org.apache.xerces.impl.xs.traversers.XSDHandler.reportSchemaWarning(XSDHandler.java:1837) at org.apache.xerces.impl.xs.traversers.XSDHandler.getSchema(XSDHandler.java:1298) at org.apache.xerces.impl.xs.traversers.XSDHandler.getSchema(XSDHandler.java:1240) at org.apache.xerces.impl.xs.traversers.XSDHandler.constructTrees(XSDHandler.java:611) at org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:403) at org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:381) at org.apache.xerces.impl.xs.XMLSchemaValidator.parseSchema(XMLSchemaValidator.java:2250) at org.apache.xerces.impl.xs.XMLSchemaValidator.findSchemaGrammar(XMLSchemaValidator.java:2178) at org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:1724) at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:568) at org.apache.xerces.impl.XMLNamespaceBinder.handleStartElement(XMLNamespaceBinder.java:832) at org.apache.xerces.impl.XMLNamespaceBinder.startElement(XMLNamespaceBinder.java:568) at org.apache.xerces.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:796) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:752) at org.apache.xerces.impl.XMLDocumentScannerImpl$ContentDispatcher.scanRootElementHook(XMLDocumentScannerImpl.java:927) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1519) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:333) at org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:529) at org.apache.xerces.parsers.StandardParserConfiguration.parse(StandardParserConfiguration.java:585) at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:147) at org.apache.xerces.parsers.DOMParser.parse(DOMParser.java:221) at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:201) at org.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:75) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:388) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125) at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:131) at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451) at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383) at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283) at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4705) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1079) at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:1002) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:506) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317) at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065) at org.apache.catalina.core.StandardHost.start(StandardHost.java:840) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) at org.apache.catalina.core.StandardService.start(StandardService.java:525) at org.apache.catalina.core.StandardServer.start(StandardServer.java:754) at org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
出现这个异常并没有影响程序的运行,就是看着很不爽。
根据异常分析和网上查找结果表示该异常基本上确定是spring配置文件头引入xsd错误造成,即无法正确的访问到xsd文件,原因大致有三个:
一:网络异常,无法访问到配置spring的xsd文件网址
二:头文件引入的xsd文件与使用spring版本不一致
三:引入的xsd文件不存在(指向本地)
我的spring文件头如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> </beans>
在我的配置中,点击每一个http链接都可以访问到xsd文件信息,并且网络正常,因此排除第一个原因。
项目中使用的是spring3.2版本,考虑到第二个原因,将配置文件做以下修改:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd"> </beans>
指定版本号之后,点击http链接同样可以根据网络访问到配置文件信息,但程序异常依然存在。
考虑到可能是网络的原因无法访问,考录将sping的xsd指定为本机文件,在spring的jar中可以找到对应的xsd文件,
修改如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans classpath:org/springframework/beans/factory/xml/spring-beans-3.2.xsd http://www.springframework.org/schema/tx classpath:org/springframework/transaction/config/spring-tx-3.2.xsd http://www.springframework.org/schema/aop classpath:org/springframework/aop/config/spring-aop-3.2.xsd"> </beans>
问题依旧!本地文件真实存在的。
百思不得其解。
又在网上遨游了半天,无意中发现了一个博友好像因为xercesImpl.jar版本出现过这个问题,赶紧做个尝试。
果不其然,换了一个高版本的xercesImpl.jar后,异常奇迹般的消失了。
经查找发现xercesImpl.jar主要用来解析XML文件,与我的问题也刚好对应,应该就是这个jar的问题了。
至此,问题解决。
相关文章推荐
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- org.xml.sax.SAXParseException: Failed to read schema document 的原因分析与解决方法
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- org.xml.sax.SAXParseException: Failed to read schema document错误的完美解决方法 以及 Spring如何加载XSD文件
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- spring3.0 断网情况下 程序报错Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)
- Spring如何加载XSD文件(org.xml.sax.SAXParseException: Failed to read schema document错误的解决方法)