xml中间出现特殊字符 比如url中非常普遍的 & 就会出现这样的解析错误,解决方法是必须用 & 来代替 & 才会解析通过。
我今天在用hibernate的时候,写hibernate.cfg.xml配置文件的时候,写jdbc connection url 由于要配置mysql jdbc驱动使用utf8,所以我的url这么写的:jdbc:mysql://localhost:3306/gpms?useUnicode=true&characterEncoding=utf8
结果运行时候hibernate出现错误,实际是dom4j出现解析错误,幸好hibernate的log相当详细。
2004-10-18 16:36:03 net.sf.hibernate.cfg.Configuration getConfigurationInputStream
信息: Configuration resource: /hibernate.cfg.xml
2004-10-18 16:36:04 net.sf.hibernate.util.XMLHelper$ErrorLogger error
严重: Error parsing XML: /hibernate.cfg.xml(10) 下一个字符必须是";" 终止引用实体 "characterEncoding"。
2004-10-18 16:36:04 net.sf.hibernate.cfg.Configuration doConfigure
严重: problem parsing configuration/hibernate.cfg.xml
org.dom4j.DocumentException: Error on line 10 of document : 下一个字符必须是";" 终止引用实体 "characterEncoding"。 Nested exception: 下一个字符必须是";" 终止引用实体 "characterEncoding"。
at org.dom4j.io.SAXReader.read(SAXReader.java:355)
很显然问题就是这个& 字符,这时才想起来&是特殊字符,用&;代替就可以了。