楼主刚学ssm框架,刚开始做一个整合的小项目。然而出现下面的错误,找不到原因。简直崩溃。
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'departmentController': Unsatisfied dependency expressed through field 'departmentService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.ssm.service.DepartmentService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
看这个报错感觉是service注入有问题。可是我找了一天也找不到哪里错了。求助大神们
这是错误代码
这是controller层
这是dao层
这是service层
这是map.xml
这是web.xml
这是spring配置
这是index.jsp

解决方案 »

  1.   

    第一眼看上去像是扫描包的问题或者是注解的问题,你先看看xml里面配对了没,我也是刚学
      

  2.   

    你把错误完全贴出来啊,看错误第一行提示后面的nested exception是什么
      

  3.   


    DepartmentController这个类是在哪个包?
    是不是在 com.ssm.xxxx.yyyy
    <context:componet-scan base-package="com.ssm.xxxx" ...>
      

  4.   

    nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.ssm.service.DepartmentService' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}这句吗?
      

  5.   

    com.ssm.controller这个
      

  6.   

    各位大神我知道了问题所在了。web.xml没有配置监听器导致serlet启动的时候apring容器没有启动
      

  7.   

    我猜测是因为你没有指定到具体的service和controller包引起的?
    你controller扫描com.ssm, service也扫描ssm,导致你的项目又两个service bean,还有两个controller bean,所以不知道该调用哪个。
      

  8.   

    不是的。只是我没有配置监听器。
    你先别急着说不是,按我说的操作下试试
    1.先把扫描位置写精确点:扫描要扫描service接口所在的包,而不是实现类
    2.@Autowire注入的时候一定是接口service,而不是实现类
    3.@Service一定要添加到service接口上,而不要添加到实现类。如果你改完了还是这个问题,我就不知道了
      

  9.   

    不是的。只是我没有配置监听器。
    你先别急着说不是,按我说的操作下试试
    1.先把扫描位置写精确点:扫描要扫描service接口所在的包,而不是实现类
    2.@Autowire注入的时候一定是接口service,而不是实现类
    3.@Service一定要添加到service接口上,而不要添加到实现类。如果你改完了还是这个问题,我就不知道了
    我已经改好啦,就是配置加了监听器就可以了
      

  10.   

    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                          http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
    version="3.1" metadata-complete="true">
    <servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring-*.xml</param-value>
    </init-param>
    </servlet>
    <servlet-mapping>
    <servlet-name>DispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
    </servlet-mapping>
    </web-app>如上配置没有监听器也是能启动的,你这个是不是因为jar包没导全
      

  11.   

    不是的。只是我没有配置监听器。
    你先别急着说不是,按我说的操作下试试
    1.先把扫描位置写精确点:扫描要扫描service接口所在的包,而不是实现类
    2.@Autowire注入的时候一定是接口service,而不是实现类
    3.@Service一定要添加到service接口上,而不要添加到实现类。如果你改完了还是这个问题,我就不知道了不要误导,人家是在dispatcher-servlet.xml 只扫描了controller的注解,applicationContext.xml如楼主所说,并没有被启动加载,所以service和dao层的类没有被spring管理,导致注入报错。
      

  12.   

    不是的。只是我没有配置监听器。
    你先别急着说不是,按我说的操作下试试
    1.先把扫描位置写精确点:扫描要扫描service接口所在的包,而不是实现类
    2.@Autowire注入的时候一定是接口service,而不是实现类
    3.@Service一定要添加到service接口上,而不要添加到实现类。如果你改完了还是这个问题,我就不知道了不要误导,人家是在dispatcher-servlet.xml 只扫描了controller的注解,applicationContext.xml如楼主所说,并没有被启动加载,所以service和dao层的类没有被spring管理,导致注入报错。
    你才误导别人呢,滚蛋
      

  13.   


    史上最简单的spring+springMVC+mybaits整合SSM框架~Simple-SSM
      

  14.   

    不是的。只是我没有配置监听器。
    你先别急着说不是,按我说的操作下试试
    1.先把扫描位置写精确点:扫描要扫描service接口所在的包,而不是实现类
    2.@Autowire注入的时候一定是接口service,而不是实现类
    3.@Service一定要添加到service接口上,而不要添加到实现类。如果你改完了还是这个问题,我就不知道了不要误导,人家是在dispatcher-servlet.xml 只扫描了controller的注解,applicationContext.xml如楼主所说,并没有被启动加载,所以service和dao层的类没有被spring管理,导致注入报错。
    你才误导别人呢,滚蛋什么态度,错了还不承认,怕是个傻子哦
      

  15.   

    不是的。只是我没有配置监听器。
    你先别急着说不是,按我说的操作下试试
    1.先把扫描位置写精确点:扫描要扫描service接口所在的包,而不是实现类
    2.@Autowire注入的时候一定是接口service,而不是实现类
    3.@Service一定要添加到service接口上,而不要添加到实现类。如果你改完了还是这个问题,我就不知道了不要误导,人家是在dispatcher-servlet.xml 只扫描了controller的注解,applicationContext.xml如楼主所说,并没有被启动加载,所以service和dao层的类没有被spring管理,导致注入报错。
    你才误导别人呢,滚蛋什么态度,错了还不承认,怕是个傻子哦
    滚蛋。
      

  16.   


    史上最简单的spring+springMVC+mybaits整合SSM框架~Simple-SSM
      

  17.   

    发不了帖子我在这里问问。有没有大佬帮忙
    楼主我做了一个个人博客项目练手。打算搭建阿里云服务器部署项目。
    项目代码是写好啦。现在问题是无法访问我的阿里云esc的地址。远程连接阿里云启动了tomcat之后无法访问。这是什么回事。求助大佬们。
    如下图
    安全组也已经加入了端口了,还是无法访问
      

  18.   


    第一个图是shutdown.sh命令后的。停不了tomcat,查了网上说是占用端口的原因,我试过所有方法都改不对
    第二个图是查看tomcat的进程