SAXParseException An invalid XML character 問題的解決
阿新 • • 發佈:2018-12-19
paip.SAXParseException An invalid XML character.txt
Caused by: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0xdd65) was found in the comment.
現象大概如下
[java] view plain copy print?- Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance. Cause: org.xml.sax.SAXParseException: An invalid XML character (Unicode:
- at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:212)
- at org.apache.ibatis.parsing.XPathParser.(XPathParser.java:81)
- at org.apache.ibatis.builder.xml.XMLMapperBuilder.(XMLMapperBuilder.java:43)
- at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:243
- at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:66)
- ... 53 more
- Caused by: org.xml.sax.SAXParseException: An invalid XML character (Unicode: 0xdd65) was found in the comment.
- at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:236
- at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:215)
- at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:386)
- at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:316)
- at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1438)
- at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanComment(XMLScanner.java:764)
- at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanComment(XMLDocumentFragmentScannerImpl.java:771)
- at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1730)
- at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:368)
- at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:834)
- at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
- at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
- at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250)
- at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
- at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:210)
-----原因JDK的XML解析相容性不好。有些XML檔案格式不太正規。。在節點中加了註釋。造成的這種問題。
----定位出錯的XML
下載MYBATIS的原始碼,附加上去除錯。定位了出錯的XML檔案。。然後把此檔案一半XML程式碼刪除,再試,直到這樣二分查詢試出出錯的節點。。
我的原因是這樣的
[xhtml] view plain copy print?- <selectid="dao-t_wl_logistics_d.queryforChild"
- parameterType="hashmap"resultType="flexmap">
- select logistics_scheme_no ,<!-- 物流方案號 -->
- node_no ,<!-- 節點號 -->
- logistics_act_code ,<!-- 活動型別程式碼 -->
- logistics_act_name,<!-- 活動型別名稱 -->
- trnp_mode_code_21 ,
- trnp_mode_name_21,
- base_place_code,
- base_place_name ,
- delivery_place_code ,
- delivery_place_name
- </select>