mybatis mapper.xml 配置文件问题(有的错误xml是不报的) 导致服务无法启动 。
转载自 开源编程 一舟
mybatsi xml编译报错,tomcat启动一直循环,导致内存溢出,启动失败
mapper.xml怎么知道有没有编译错误,哪个位置有错误
这应该是mybatis的一个bug,编译错误,没有报异常抛出来
package com.jrss.webservice.rest.app.index; import java.io.IOException; import org.apache.ibatis.executor.ErrorContext; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.springframework.core.NestedIOException; public class BeanFactory extends SqlSessionFactoryBean{ protected SqlSessionFactory buildSqlSessionFactory() throws IOException{ try{ return super.buildSqlSessionFactory(); }catch (NestedIOException e) { e.printStackTrace(); throw new NestedIOException("Failed parse Mapping resource",e.getCause()); }finally{ ErrorContext.instance().reset(); } } }
<!-- MyBatis配置 --> <bean id="sqlSessionFactory" class="com.jrss.webservice.rest.app.index.BeanFactory"> <property name="dataSource" ref="dataSource" /> <!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
这应该是mybatis的一个bug,编译错误,没有报异常抛出来。
新建BeanFactory继承SqlSessionFactoryBean
然后重写buildSqlSessionFactory方法,抛出mybatis mapper.xml编译的错误.