In a servlet inside method doPost I have created the code showed under here. It should do something very simple. Get an object according to a string passed by user request and pass this object to a response request. Unfortunately I get this exception
java.lang.NullPointerException
at it.volaconnoi.servlet.CheckInServlet.doPost(CheckInServlet.java:68)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
I'm totally sure that reserv object is not empty but it is an entity fetched from the db . Do you know why I get this problem?
CODE UPDATED
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String reserv_id = request.getParameter("reserv_id");
Reservation reserv = reservationFacade.getValidReservation(reserv_id.toUpperCase());
Gson gson = new GsonBuilder().registerTypeAdapter(Reservation.class, new ReservationSerializer())
.create();
response.setContentType("application/json");
PrintWriter out = response.getWriter();
out.print(gson.toJson(reserv));
out.flush();
}
The class I'm trying to parse POJO objec
public class Reservation implements Serializable
{
private String id_reservation;
private int passengers;
private int luggages;
private float price;
private Date date_reservation;
private boolean cancelled;
private UserCredential user;
private Route route;
... getter and setter
Jquery call
$.post("checkin", {reserv_id :reserv_id}, function(data){
if(data.success)
{
$("#result_check_in").html("");
$("#result_check_in").append("<table class='show_reservations'>");
$("#result_check_in").append("<tr>");
$("#result_check_in").append("<td>" + data.reserv_client.id + "<td>");
$("#result_check_in").append("<td>" + data.reserv_client.user.name + "<td>");
$("#result_check_in").append("<td>" + data.reserv_client.user.surname + "<td>");
$("#result_check_in").append("</tr>");
$("#result_check_in").append("</table>");
}
else
{
$("#result_check_in").append("<p>Non è stata trovata alcuna prenotazione corrispondente al PNR inserito!</p>");
}
});
Serializer
public class ReservationSerializer implements JsonSerializer<Reservation>
{
@Override
public JsonElement serialize(Reservation r, Type type, JsonSerializationContext jsc)
{
JsonObject json = new JsonObject();
json.add("id", new JsonPrimitive(r.getId()));
json.add("name", new JsonPrimitive(r.getUsername().getName()));
json.add("surname", new JsonPrimitive(r.getUsername().getSurname()));
json.add("airport_departure", new JsonPrimitive(r.getRoute().getAirport_city_source().getName()));
json.add("airport_arrival", new JsonPrimitive(r.getRoute().getAirport_city_dest().getName()));
json.add("date_departure", new JsonPrimitive(dateToString(r.getRoute().getDeparture_date())));
json.add("date_arrival", new JsonPrimitive(dateToString(r.getRoute().getArrival_date())));
json.add("passengers", new JsonPrimitive(r.getPassengers()));
json.add("luggages", new JsonPrimitive(r.getLuggages()));
return json;
}