2013-05-09 2 views
0

я получаю следующее исключение в Spring контроллера:Не удалось создать экземпляр класса компонента org.springframework.validation.BindingResult

Не удалось создать экземпляр класса боб [org.springframework.validation.BindingResult]: Указано класс является интерфейсом .

Вот мой контроллер:

@Controller 
public class SendPasswordController { 
    @Resource 
    private JavaMailSender mailSender; 

    //@Autowired 
    //private UserService userService; 
    @Resource 
    private UserService userService; 
    @Resource 
    private ChangePasswordService changePasswordService; 
    @Resource 
    private EmailSenderService emailSenderService; 


    @RequestMapping(value = "/EmailForm" ,method= RequestMethod.GET) 
    public ModelAndView sendEmail(@ModelAttribute(value="emailPasswordForm") 
      BindingResult result,HttpServletRequest request){ 
     ModelAndView mav = new ModelAndView("EmailForm"); 
     String userName= null; 
     String password=null; 
     Authentication auth = SecurityContextHolder.getContext().getAuthentication(); 
     if (!(auth instanceof AnonymousAuthenticationToken)) { 
      UserDetails userDetails =(UserDetails)auth.getPrincipal(); 
      userName=userDetails.getUsername(); 
      password=userDetails.getPassword(); 

      UserForm userForm = userService.getUser(userName); 
      System.out.println("name is"+userName); 
      System.out.println("password is"+password); 
      User user=changePasswordService.findByNameAndPassword(userName, password); 

      if(user!=null){ 
        final String emailTo =user.getUserEmail(); 
        final String subject = "Password Reset"; 
        final String passwordGenerated = changePasswordService.randomPasswordGenerate(); 
       // for logging 
        System.out.println("emailTo: " + emailTo); 
        System.out.println("subject: " + subject); 
        System.out.println("message: " + passwordGenerated); 
        //System.out.println("attachFile: " + attachFile.getOriginalFilename()); 
        //emailService.sendEmail(user, passwordGenerated); 
        mailSender.send(new MimeMessagePreparator() { 

         @Override 
         public void prepare(MimeMessage mimeMessage) throws Exception { 
          MimeMessageHelper messageHelper = new MimeMessageHelper(
           mimeMessage, true, "UTF-8"); 
          messageHelper.setTo(emailTo); 
          messageHelper.setSubject(subject); 
          messageHelper.setText(passwordGenerated); 

         } 

        }); 
        emailSenderService.updatePassword(user, passwordGenerated); 
        Authentication authentication = new UsernamePasswordAuthenticationToken(user, user.getPassWord()); 
        SecurityContextHolder.getContext().setAuthentication(authentication); 
        return new ModelAndView("Result"); 

      } 
     } 
     return mav; 
    } 

} 

Это мой трассировки стека:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.validation.BindingResult]: Specified class is an interface 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:656) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169) 
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 

root cause 

org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.validation.BindingResult]: Specified class is an interface 
    org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:101) 
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveModelAttribute(HandlerMethodInvoker.java:762) 
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.resolveHandlerArguments(HandlerMethodInvoker.java:356) 
    org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:171) 
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426) 
    org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109) 
    org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:119) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79) 
    org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380) 
    org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169) 
    org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237) 
    org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167) 
+1

Опубликовать свой стек. – Ankit

+0

Этот код работал раньше. Внезапно он начал показывать это исключение. – user2365991

ответ

2

Я нашел странный код в контроллере:

public ModelAndView sendEmail(@ModelAttribute(value="emailPasswordForm") 
     BindingResult result, HttpServletRequest request){ 

Если вы вас хотите подтвердить свою форму, вы должны сделать что-то вроде этого:

public ModelAndView sendEmail(
    @ModelAttribute(value="emailPasswordForm") EmailPasswordForm form, 
    BindingResult result, HttpServletRequest request){ 
+0

Я решил проблему. Это был метод signature.i, который изменил его на @ RequestMapping (value = "/ EmailForm", method = RequestMethod.GET) \t public ModelAndView sendEmail (запрос HttpServletRequest) – user2365991

Смежные вопросы