spring启动异常:org.springframework.beans.factory.BeanCreationException

来源:互联网 发布:matlab最优化算法例题 编辑:程序博客网 时间:2024/05/19 10:13

问题:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [ApplicationContext.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type 'java.lang.String' to required type 'org.springframework.core.io.Resource[]' for property 'mapperLocations'; nested exception is java.lang.IllegalArgumentException: Could not resolve resource location pattern [mybatis/*.xml]: ServletContext resource [/mybatis/] cannot be resolved to URL because it does not exist

问题分析:

问题集中在ApplicationContext.xml文件中,与sqlSeesionFactory有关。

原始文件中该部分的代码如下:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="mapperLocations" value="mybatis/*.xml"/><property name="typeAliasesPackage" value="com.toki.bean"/></bean>

以上配置,不会影响dao,bean,service层之间的配合操作,能够正确寻址到resources文件夹下mybatis文件夹下的*.xml文件。

但是,在添加controller层之后,不能寻址到resources文件夹下的子文件夹和文件。

原因是:未在value后添加classpath:。因为设置资源文件路径时要加classpath:,这表示是资源文件路径的根路径。

解决方案:

将配置修改为:

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><property name="mapperLocations" value="classpath:mybatis/*.xml"/><property name="typeAliasesPackage" value="com.toki.bean"/></bean>




阅读全文
0 0