SAXParseException;前言中不允许有内容出错原因及解决办法
SpringBoot项目启动后报如下错误
nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name ‘sqlSessionFactory’ defined in class path resource [org/mybatis/spring/boot/autoconfigure/MybatisAutoConfiguration.class]:
Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException:
Failed to instantiate [org.apache.ibatis.session.SqlSessionFactory]: Factory method ‘sqlSessionFactory’ threw exception;
nested exception is org.springframework.core.NestedIOException: Failed to parse config resource:
class path resource [mybatis-config.xml]; nested exception is org.apache.ibatis.builder.BuilderException:
Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException:
Error creating document instance. Cause: org.xml.sax.SAXParseException;
lineNumber: 1; columnNumber: 1; 前言中不允许有内容。;
产生这个错误的原因如下。
项目中开发的xml文件,必须是UTF-8无BOM头的文件,如果无BOM头的XML文件被记事本打开,且编辑后保存,BOM头会自动带上。
导致系统启动时报错。 使用Nodepad工具(或者其他文本编辑器)可查看具体文件格式,把格式转成 UTF-8无BOM格式编码,保存即可修正。
注意:不要在服务器上使用文本编辑器随意编辑xml文件,有些编辑器会默认加BOM投,可能会出问题。