当使用SSM框架时,有时候会发生sqlSessionFactory异常。那么如何诊断问题发生在哪里?
启动时报错:
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'sqlSessionFactory' defined in ServletContext resource [/WEB-INF/config/applicationContext.xml]: Invocation of init method failed; nested exception is org.springframework.core.NestedIOException:
....
nested exception is java.lang.RuntimeException: Error parsing Mapper XML. Cause: java.lang.NullPointerException
产生这种问题时,最直接的判断是Spring的配置文件是否存在错误,或者MyBatis的配置文件是否存在错误。
诊断思路:
1、检查Spring的配置文件,例如applicationContext.xml中关于数据源的配置代码是否正确;
2、检查数据源的描述文件(如果有)是否正确,例如jdbc.properties属性文件
3、检查MyBatis的配置文件,例如mybatis.xml文件
<configuration>
<mappers>
检查这里的代码是否编写的正确
</mappers>
</configuration>
4、在第3个检查点中如果引用了其它的映射文件,检查*.xml文件中MyBatis的配置映射内容是否正确。
以上内容都有可能导致sqlSessionFactory异常产生。
当然前提是已经在web工程中正确配置了必须的jar包。
完毕。