Monday, 15 June 2015

Converting a HttpServletRequest containing json to a POJO - java.lang.IllegalStateException -



Converting a HttpServletRequest containing json to a POJO - java.lang.IllegalStateException -

i trying utilize poster add-in send json request. sending request function read json , create inputdto object. seems run find when phone call function assigned value throws java.lang.nullpointerexception error. found tutorial , tried utilize it. http://edwin.baculsoft.com/2011/11/how-to-create-a-simple-servlet-to-handle-json-requests/

it seemed needed not working. here code snippets doing. please help this?

protected void dopost(httpservletrequest request, httpservletresponse response) throws servletexception, ioexception { seek (printwriter pw = response.getwriter()) { inputdto inputjson = xmlreader.inputfromjson(request); pw.println("before phone call timezone input dto"); pw.println(inputjson.gettimezone()); pw.println("after phone call timezone input dto");

here code xmlreader.inputfromjson(request)

public static inputdto inputfromjson(httpservletrequest request) throws ioexception { inputdto inputdto = null; gson gson = new gson(); logger.debug("before fromjson call"); inputdto = gson.fromjson(request.getreader(), inputdto.class); logger.debug("after fromjson call"); homecoming inputdto; }

the line fails

pw.println(inputjson.gettimezone());

the methods inputdto has

public string gettimezone() { homecoming timezone; } public void settimezone(string timezone) { this.timezone = timezone; }

this request sending:

{"request":[ {"timezone":"cst"} ]}

added: stack trace

week3 threw exception java.lang.nullpointerexception @ com.week3.week3.dopost(week3.java:136) @ javax.servlet.http.httpservlet.service(httpservlet.java:643) @ javax.servlet.http.httpservlet.service(httpservlet.java:723) @ org.apache.catalina.core.applicationfilterchain.internaldofilter(applicationfilterchain.java:290) @ org.apache.catalina.core.applicationfilterchain.dofilter(applicationfilterchain.java:206) @ org.apache.catalina.core.standardwrappervalve.invoke(standardwrappervalve.java:233) @ org.apache.catalina.core.standardcontextvalve.invoke(standardcontextvalve.java:191) @ org.apache.catalina.core.standardhostvalve.invoke(standardhostvalve.java:127) @ org.apache.catalina.valves.errorreportvalve.invoke(errorreportvalve.java:103) @ com.ta.aa.dao.catalina.daovalve.invoke(unknown source) @ com.ta.aa.catalina.realm.singlesignon.invoke(singlesignon.java:631) @ org.apache.catalina.core.standardenginevalve.invoke(standardenginevalve.java:109) @ org.apache.catalina.connector.coyoteadapter.service(coyoteadapter.java:293) @ org.apache.coyote.http11.http11processor.process(http11processor.java:861) @ org.apache.coyote.http11.http11protocol$http11connectionhandler.process(http11protocol.java:606) @ org.apache.tomcat.util.net.jioendpoint$worker.run(jioendpoint.java:489) @ java.lang.thread.run(thread.java:724)

please allow me know if can help.

thanks!

names should match in json , class. info sending in json , class definition not match. alter class definition.

class request{ string tz; public string gettz() { homecoming tz; } public void settz(string tz) { this.tz= tz; } } class inputdto { request request; public string getrequest() { homecoming request; } public void setrequest(request request) { this.request= request; } }

java json gson

No comments:

Post a Comment