0

Here is the full stack trace

Aug 04, 2018 1:19:57 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [SpringMVC] in context with path [/project] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException

at com.controllers.UsersController.validateuser(UsersController.java:87)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)

at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)

at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:832)

at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:743)

at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)

at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961)

at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:895)

at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967)

at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:869)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)

at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)

at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:800)

at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1471)

at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

at java.lang.Thread.run(Unknown Source)

Here is the controller code

/*User login controller */
@RequestMapping(value="/userlogin", method=RequestMethod.POST)
public @ResponseBody ModelAndView validateuser(@Valid LoginForm loginForm, BindingResult result) {


    if (result.hasErrors()) {
        ModelAndView view =new ModelAndView("users");
        return view;
    }

    boolean userExists = loginService.checkLogin(loginForm.getUser_email(),loginForm.getUser_password());
    if(userExists){
        ModelAndView view =new ModelAndView("user_loginsuccess");
         return view;
    }else{
        ModelAndView view =new ModelAndView("users");
         return view;
    }

}

here :boolean userExists = loginService.checkLogin(loginForm.getUser_email(),loginForm.getUser_password()); is at line number 87 which seems to be the causing this problem

here is the login service class:

@Service

public class LoginServiceImpl implements LoginService{

 @Autowired
 private LoginDao loginDAO;

   public void setLoginDAO(LoginDao loginDAO) {
          this.loginDAO = loginDAO;
   }

   public boolean checkLogin(String user_email, String user_password){
          System.out.println("In Service class...Check Login");
          return loginDAO.checkLogin(user_email, user_password);
   }

}

And here is the logindao class:

@Repository("loginDAO")

public class LoginDaoImpl implements LoginDao{

   @Resource(name="sessionFactory")
   protected SessionFactory sessionFactory;

   public void setSessionFactory(SessionFactory sessionFactory) {
          this.sessionFactory = sessionFactory;
   }

   protected Session getSession(){
          return sessionFactory.openSession();
   }

   public boolean checkLogin(String user_email, String user_password){
        System.out.println("In Check login");
        Session session = sessionFactory.openSession();
        boolean userFound = false;
        //Query using Hibernate Query Language
        String SQL_QUERY =" from Users as o where o.user_email=? and o.user_password=?";
        Query query = session.createQuery(SQL_QUERY);
        query.setParameter(0,user_email);
        query.setParameter(1,user_password);
        List list = query.list();

        if ((list != null) && (list.size() > 0)) {
            userFound= true;
        }

        session.close();
        return userFound;              
   }

}

dur
  • 15,689
  • 25
  • 79
  • 125
faize
  • 59
  • 11
  • 3
    Possible duplicate of [What is a NullPointerException, and how do I fix it?](https://stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-do-i-fix-it) – Dima Kozhevin Aug 04 '18 at 20:38
  • Did you debug your application? Is`loginService` the problem or `loginForm`? – dur Aug 04 '18 at 20:52
  • @dur its loginservice, loginform is working fine – faize Aug 05 '18 at 06:30

1 Answers1

0

I forgot to autowire the login service object so java was considering it as an object with null values once i included @autowired for the loginservice the issue got solved

faize
  • 59
  • 11