Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sqlSessionFactory' defined in class path resource [spring-mybatis.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 [classpath:com/hello/mapping/*.xml]: class path resource [com/hello/mapping/] cannot be resolved to URL because it does not exist
···
···
···
Caused by: 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 [classpath:com/hello/mapping/*.xml]:
class path resource [com/hello/mapping/] cannot be resolved to URL because it does not exist
我用的是Intellij idea开发Spring+maven+mybatis,根据上面报错,是因为找不到xml文件,但是我的xml文件和路径都是对的,而且存在,为什么找不到呢?
后来发现,编译后的文件夹target中的class里,并没有mapping文件夹,更没有xml。那么问题就很清楚了,是Intellij idea导致不把xml编译进去,之前使用MyEclipse并没遇到这个问题。
解决办法是:须在pom.xml文件中添加如下配置(来源:http://blog.csdn.net/u012599988/article/details/44041205)
<build>
<finalName>API</finalName>
<resources>
······
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
······
</resources>
</build>