I am actually using postman to send login request to my REST API but it's giving me a javaNullpointer exception. It's because in model class one of my variables is not getting a value. setPhone_Number() function is not called in my model class. So the phone_number variable is empty.
Help is appreciated.
Here is my error screnshot eclipse error for null pointer here is what i am sending through postman Postman
here is the login dao class.
public class LoginDao { private String password; private String phone_number; public LoginDao(){ phone_number = null; password = null; } public Response doLogin(login logg, String user_type) throws SQLException{ ResultSet rs = null; boolean userType = true; //if userType is resource then boolean is false, if userType is user then boolean is true. //logg.setPhone_Number(phone_number); DBConnection dbConnection = new DBConnection(); //Connection connection = dbConnection.getConnection(); this.phone_number = logg.getPhone_Number(); this.password = logg.getPassword(); try{ if(user_type.equalsIgnoreCase("Rider")) { rs = dbConnection.runSql("select rider_id, phone_number, password from rider"); userType = true; } else if(user_type.equalsIgnoreCase("Driver")) { rs = dbConnection.runSql("select driver_id, phone_number, password from driver"); userType = false; } while(rs.next()){ System.out.println(phone_number); System.out.println(rs.getString("phone_number")); System.out.println("user"+user_type); if((this.phone_number.equals(rs.getString("phone_number"))) && (this.password.equals(rs.getString("password")))){ Here is model class login
public class login { private String phone_number; private String password; public login(){ } public String getPhone_Number() { System.out.println("getting "+phone_number); return phone_number; } public void setPhone_Number(String phone_number) { System.out.println("seting "+phone_number); this.phone_number = phone_number; } public String getPassword() { return password; } public void setPassword(String password) { System.out.println("seting "+password); this.password = password; } }
Here is loginResource.java
import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import static javax.ws.rs.core.MediaType.APPLICATION_JSON; import java.sql.SQLException; import javax.ws.rs.Consumes; import io.github.yasirfaisal21.schoolvan.schoolvan.dao.LoginDao; import io.github.yasirfaisal21.schoolvan.schoolvan.model.login; @Path("login") public class loginResource { @Produces(MediaType.APPLICATION_JSON) @Consumes(APPLICATION_JSON) @POST public Response doLogin(login log,@QueryParam("user_type") String user_type ) throws SQLException{ LoginDao loginDao = new LoginDao(); if(user_type.equalsIgnoreCase("Rider")) return loginDao.doLogin(log,"Rider"); else return loginDao.doLogin(log,"Driver"); } }
line number 52 in LoginDao. Can you Please share the 52 number line from LoginDao?login logparam inloginResource.doLoginloginconstructor setsphonenumberto null. Also,LoginDao's constructor setsphonenumberto null. they will remain null as long as you supply your ownlogin, which i see you are trying to do inloginResource. Could you post the request headers?