新手ssm整合时出现的问题

出现问题

练习整合ssm项目的时候,整合完后运行报的第一个错,后面还报了无数个错,没有一一列举,主要纪录解决的过程
严重: Servlet /SSM_template threw load() exception org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'edu.wut.will.service.UserService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@javax.annotation.Resource(shareable=true, lookup=, name=, description=, authenticationType=CONTAINER, type=class java.lang.Object, mappedName=)}

解决过程

  1. 检查配置文件是否有问题,有没有该配置的没有配置,发现web.xml忘记配置spring监听器
  2. 检查配置文件中的包扫描等地方的包名有没有写错,发现spring-db.xml的mapperLocations的value中包名漏写了一层
  3. 检查Tomcat版本和log4j、spring等的版本是否匹配,发现Tomcat7.0和我的log4j版本不匹配
  4. 检查mapper.xml文件中是否有问题,发现mybatis generator自动生成的mapper文件有问题,把同一用户不同数据库中的表的resultmap也生成了,导致resultmap重复

 
    整了一晚上,解决一个又出一个新的,解决到第四步的时候,就当我以为要成功了的时候,又报出了跟刚开始一毛一样的错误。。
org.springframework.beans.factory.NoSuchBeanDefinitionException
    没辙,继续找吧
 

  1. 检查注解位置写的对不对,发现之前改错的时候把@service改到接口上了,应该是写在service上

    这时候又报出错误
Bean named 'userService' is expected to be of type [edu.wut.will.service.UserService] but was actually of type [edu.wut.will.service.Impl.UserServiceImpl]
    这个问题有点眼熟,好像是之前出现这问题我把@service改到接口上的,实现类和接口怎么会类型不统一呢。。仔细一看发现实现类忘记实现接口了。。。。

  1. 检查实现类是否实现了接口
  2. 后面又出现了数据库连接问题,发现数据库连接的时候忘记设置时区了,加上了&serverTimezone=GMT%2B8
     

至此终于成功运行

你可能感兴趣的:(新手ssm整合时出现的问题)