错误: tomcat启动报错日志
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.mall.dao.hospital_card.HospitalCardDao com.mall.service.impl.hospitalCard.HospitalCardServiceImpl.hospitalCardDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'hospitalCardDao' defined in URL [jar:file:/D:/Work/Working/WorkSpace/Idea/llam/mall/mall_admin/target/mall_admin/WEB-INF/lib/mall_core-0.0.1-SNAPSHOT.jar!/com/mall/dao/hospital_card/HospitalCardDao.class]: 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 file [D:\Work\Working\WorkSpace\Idea\llam\mall\mall_admin\target\mall_admin\WEB-INF\classes\config\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/mall/mapping/*/*.xml]: class path resource [com/mall/mapping/] cannot be resolved to URL because it does not exist
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
... 58 more
原因:
一直是不能创建bean的样子,经过一行一行地阅读报错信息。最后发现mybatis的映射xml文件居然没有找到,然后又去翻classes目录,结果果然没有,因为自己的mybatis的mapping目录是在src/main/java 在编译时没有保留配置文件,导致tomcat启动无法找到对应的目录从而报错
解决办法:
在pom文件中加入如下代码:
<build>
<resources>
<!--编译之后包含xml-->
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>