В loginResource.java
, линия
LoginDao loginDao = new LoginDao();
вызывает этот метод в LoginDao
:
public LoginDao(){
phone_number = null;
password = null;
}
где вы явно задали phone_number = null
теперь в строке 52 из LoginDao
if((this.phone_number.equals(rs.getString("phone_number"))) && (this.password.equals(rs.getString("password"))))
this.phone_number
соответствует объекту LoginDao
, который был построен последним, для которого phone_number
имеет значение null. Даже до того, как значения можно сравнить с rs
, функция equals
завершается ошибкой, и вы получаете исключение null pointer
.
Вместо этого вы должны принять значения phone_number
и password
из запроса. Попробуйте создать параметризованный конструктор и присвоить им передаваемые вами значения, например:
public LoginDao(String number, String password){
this.phone_number = number;
this.password = password;
}
и вызывать его с loginResource
примерно так:
if(user_type.equalsIgnoreCase("Rider"))
return new loginDao(number,password).doLogin(log,"Rider");
else
return new loginDao(number,password).doLogin(log,"Driver");
}
В качестве альтернативы Я думаю, что вы пытаетесь сохранить параметры в Login
объекте, но вы нигде не делали этого в loginResource
. Вы должны изменить свой конструктор в loginDao
на
public loginDao() { }
и напишите следующее в loginResource
:
Login login = new Login();
if(user_type.equalsIgnoreCase("Rider")){
login.setPhone_number("your phone number from request");
return loginDao.doLogin(log,"Rider");
}
else
{
login.setPhone_number("your phone number from request");
return loginDao.doLogin(log,"Driver");
}