今天修改了配置文件中的一个配置项值,将原先的url连接中加入了一个&source=upload,结果在应用启动的时候报错了。错误栈如下:
- Causedby:org.xml.sax.SAXParseException:Thereferencetoentity"test"mustendwiththe';'delimiter.
- atorg.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(UnknownSource)
- atorg.apache.xerces.util.ErrorHandlerWrapper.fatalError(UnknownSource)
- atorg.apache.xerces.impl.XMLErrorReporter.reportError(UnknownSource)
- atorg.apache.xerces.impl.XMLErrorReporter.reportError(UnknownSource)
- atorg.apache.xerces.impl.XMLScanner.reportFatalError(UnknownSource)
- atorg.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEntityReference(UnknownSource)
- atorg.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(UnknownSource)
- atorg.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(UnknownSource)
- atorg.apache.xerces.parsers.XML11Configuration.parse(UnknownSource)
- atorg.apache.xerces.parsers.XML11Configuration.parse(UnknownSource)
- atorg.apache.xerces.parsers.XMLParser.parse(UnknownSource)
- atorg.apache.xerces.parsers.DOMParser.parse(UnknownSource)
- atorg.apache.xerces.jaxp.DocumentBuilderImpl.parse(UnknownSource)
- atorg.springframework.beans.factory.xml.DefaultDocumentLoader.loadDocument(DefaultDocumentLoader.java:76)
- atorg.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:361)
- ...176more
上网google,发现是sax解析造成的问题。解决方案很简单,就是把配置项值中用到"&"的地方改成"&"。原因是sax解析的类库在读取文件的时候是根据转义后的格式进行读取的,遇到"&"就认为是一个转义字符串,开始找结束符";",找不到自然就报错了。