Failed to parse mapping resource......

每次项目跑不起来,报错一大堆,就很烦躁,其实应该试着沉下心来好好看报错信息,结合项目经验和对报错信息的分析,才能更高效的解决问题!

今天在mapper.xml中写了一个相对复杂的SQL语句,本以为成功近在咫尺,然而报错了。。像是大冷天一身暖和突然被浇盆冷水,有点失落了,然后盯着报错看了很久,但是却没有仔细看就急着复制到浏览器查找错误解决方法,一次次试运行,报错依在。。

Cannot resolve reference to bean 'sqlSessionFactory' while setting bean property 'sqlSessionFactory'; 
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring-mybatis.xml]: Invocation of init method failed; 
nested exception is org.springframework.core.NestedIOException: Failed to parse mapping resource: 'file [D:\Program Files\apache-tomcat-8.5.23\wtpwebapps\pisms\WEB-INF\classes\mapper\***.xml]'; 
nested exception is org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 31; columnNumber: 14; 元素内容必须由格式正确的字符数据或标记组成。

其实报错信息里提示的很清楚,在这个XML文件中31行,14列有错误,导致XML文件无法解析,从而spring容器初始化失败。。

如果数据库配置么有问题,而某个映射文件中有错误,那么项目部署运行过程中,控制台输出日志信息中,按顺序解析映射文件时会到错误的映射文件停止并报错。。。

解析映射文件失败的原因也许有:

1.数据库中数据表有变化,而映射文件未更新

2.映射文件中SQL语句出错,所以最好先跑一遍SQL,如果没问题那可能是格式有问题,比如运算符等

你可能感兴趣的:(web)