首先提一点,这类型的错误我主要在两个方面遇到
1、确实XML文件格式有问题
格式错误大多会有IDE提示,但例如“”中的路径这种就无法被IDE检查到,要注意是不是哪里多了个空格逗号一类的。
2、没有引入XML文件或者引入错误
在例如springframework中的XmlBeanDefinitionStoreException,该异常一个是xml配置文件有问题,还有就是根本没写ClassPath:后面的内容,他不会直接报没找到,而是报执行后的异常,一报就是一堆。
错误示例
学习springmvc原理时,下面的做法只在学习原理时这样写
<!--DispatcherServlet要绑定Spring的配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:springmvc-servlet.xml</param-value></init-param>
<servlet-mapping><servlet-name>springmvc</servlet-name><url-pattern>/</url-pattern></servlet-mapping>
接着我们将 <param-value>classpath:后面的文件名删除。
很容易就得到了一个异常
org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 1 in XML document from class path resource [] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; 前言中不允许有内容。
为什么没有报没找到呢?因为人家在设计框架时认为你不会犯这种萌萌错误SAXParseException这个异常我们可以分析一下,SAX(simple API for XML)是一种XML解析的替代方法,他是逐行进行的。sax中在文档的开始和结束时会触发文档处理事件。SAX解析异常,spring告诉你是xml方面出了问题看起来也挺人性化,呵呵o(* ̄︶ ̄*)o。
后记:UTF-8 BOM或者UTF-8 这种格式问题在新版IDE中一般不会出现。
BOM的首行你可以自行研究一下,DOM(文档对象模型)是W3C标准。
你可以尝试下面的办法
用notepad++打开,编码=>转为utf-8