0

我的 Maven 项目有一个 Restful 设计,一个带有用户类的域层,一个带有 CRUD 功能的服务的数据层和一个带有控制器类的 Web 层。但是当我运行该项目时,我收到以下错误:

javax.servlet.ServletException: Servlet.init() for servlet appServlet threw exception
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
........
java.lang.Thread.run(Thread.java:680)   


root cause

   org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userController': Injection of autowired dependencies failed; nested              
   exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: ........service.UserService org.
   bk.samples.mvc.UserController.userService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [se. 
   datalayer.guards.service.UserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency 
   annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
   org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) ..........

root cause

org.springframework.beans.factory.BeanCreationException: Could not autowire field: .........service.UserService 
org.bk.samples.mvc.UserController.userService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type 
[se.datalayer.guards.service.UserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency 
annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}   ..........

root cause

org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [.........service.UserService] found for dependency: 
expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: 
{@org.springframework.beans.factory.annotation.Autowired(required=true)}
    org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:924)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:793) .......

然后我删除了@Autowired注释,但得到以下错误:

    org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.NullPointerException
        org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
        org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

    root cause

    java.lang.NullPointerException
        org.bk.samples.mvc.UserController.allUsers(UserController.java:32)
        sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)..........  

我的userController课是:

@Controller
@RequestMapping(value="/")
public class UserController
{
    @Autowired
    UserService userService;

    @RequestMapping(value="/users", method=RequestMethod.GET)
    public ModelAndView allUsers()
    {

    ModelAndView mvd= new ModelAndView();
    Collection<User> allUsers= new ArrayList<User>();
    allUsers= userService.findAllUsers();
    System.out.println(allUsers);
    mvd.addObject("allUsers", allUsers);
    return mvd;   
    }
}           

我不知道是什么导致了问题,我将不胜感激。

4

2 回答 2

0

它与 Maven 无关。您的 Spring 配置有问题。它告诉您您没有定义 UserService 类型的 Spring bean,因此它无法创建您的控制器 bean,因为它依赖于 UserService(通过 @Autowired 注释表示)。您可能想看一下Spring 容器和/或Spring MVC 框架的概述。

于 2012-05-10T16:58:17.557 回答
0

很可能您的 webapp 中的 spring 配置错误,与 maven 无关。无论您在哪里引导 spring,您都可能包含您的 webapp 配置,但不包含您的数据层 spring bean。

于 2012-05-10T17:00:06.813 回答