java - Jersey consume does not receive Multiple JSON Objects and Arrays -


java code: import javax.xml.bind.annotation.xmlrootelement;

//contactdetails object

      @xmlrootelement      public class contactdetails {         private string name;         private string address;          public string getname() {      return name;      }      public void setname(string name) {         this.name = name;     }     public string getaddress() {     return address;     }     public void setaddress(string address) {     this.address = address;    }   } 

package com.rest.test.to;

import javax.xml.bind.annotation.xmlrootelement;

//previouseducationdetails object

  @xmlrootelement   public class previouseducationdetails {   private string qualification;   private string istitutionname;   public string getqualification() {           return qualification;   }   public void setqualification(string qualification) {          this.qualification = qualification;   }   public string getistitutionname() {          return istitutionname;   }   public void setistitutionname(string istitutionname) {          this.istitutionname = istitutionname;   } 

}

//personaldetails object

package com.rest.test.to;

import javax.xml.bind.annotation.xmlrootelement;

@xmlrootelement public class personaldetails {

private string firstname; private string lastname; private string address;  public string getfirstname() {     return firstname; }  public void setfirstname(string firstname) {     this.firstname = firstname; }  public string getlastname() {     return lastname; }  public void setlastname(string lastname) {     this.lastname = lastname; }  public string getaddress() {     return address; }  public void setaddress(string address) {     this.address = address; } 

}

//javascript code

    $(document).ready(function() {     $("#studentinsert").click(function() {     alert("reaches script !!");     var firstname = $("#firstname").val();     var lastname = $("#lastname").val();     var address = $("#address").val();      student.presonal_details = {             firstname : $("#firstname").val(),             lastname : $("#lastname").val(),             address : $("#address").val(),             }     student.contactpersondetails=[{         name:"name1",         address:"location1"     },{         name:"name2",         address:"location2"     },{         name:"name3",         address:"location3"     }]     student.previouseducationdetails=[                                          {qualification:"mca",istitutionname:"engineering college"},                                        {qualification:"mba",istitutionname:"engineering college"},                                       {qualification:"msc",istitutionname:"engineering college"}                                       ]     $.ajax({         type : "post",         url :   "http://localhost:8080/restjersey/rest/jsonrequestreceiver/savestudentdetail",         contenttype: "application/json",         data : json.stringify(student),         success : function(data) {             console.log(data);         }     });  }); }); 

//rest resource method

 package com.rest.test;   import java.util.arraylist;  import java.util.list;   import javax.ws.rs.consumes;  import javax.ws.rs.get;  import javax.ws.rs.post;  import javax.ws.rs.path;  import javax.ws.rs.produces;  import javax.ws.rs.core.mediatype;   import com.rest.test.to.personaldetails;  import com.rest.test.to.previouseducationdetails;  import com.rest.test.to.studentdetailsto;  @path("/jsonrequestreceiver")  public class jsonrequestreceiver {  @post  @path("/savestudentdetail")  @consumes(mediatype.application_json)  public void savestudentdetail(studentdetailsto  student){     }   } 

//studentdetailsto object

import javax.xml.bind.annotation.xmlrootelement;

@xmlrootelement public class studentdetailsto {

personaldetails personaldetails; list<contactdetails> contactdetails; list<previouseducationdetails> previouseducationdetails;  public personaldetails getpersonaldetails() {     return personaldetails; } public void setpersonaldetails(personaldetails personaldetails) {     this.personaldetails = personaldetails; }     public list<contactdetails> getcontactdetails() {     return contactdetails; } public void setcontactdetails(list<contactdetails> contactdetails) {     this.contactdetails = contactdetails; } public list<previouseducationdetails> getpreviouseducationdetails() {     return previouseducationdetails; } public void setpreviouseducationdetails(         list<previouseducationdetails> previouseducationdetails) {     this.previouseducationdetails = previouseducationdetails; } } 

error:

 remote address:127.0.0.1:8080  request             url:http://localhost:8080/restjersey/rest/jsonrequestreceiver/savestudentd etail  request method:post  status code:400 bad request  request headersview source  accept:*/*  accept-encoding:gzip, deflate  accept-language:en-gb,en-us;q=0.8,en;q=0.6  cache-control:no-cache  connection:keep-alive  content-length:446  content-type:application/json  host:localhost:8080  origin:http://localhost:8080  pragma:no-cache  referer:http://localhost:8080/restjersey/  user-agent:mozilla/5.0 (x11; linux x86_64) applewebkit/537.36 (khtml,   gecko) ubuntu chromium/39.0.2171.65 chrome/39.0.2171.65 safari/537.36   x-requested-with:xmlhttprequest   request payloadview source  {presonal_details: {firstname: "murugesan", lastname: "rathinam",    address: "karur"},…}  contactpersondetails: [{name: "name1", address: "location1"}, {name:   "name2", address: "location2"},…]  presonal_details: {firstname: "murugesan", lastname: "rathinam",  address:  "karur"}  previouseducationdetails: [{qualification: "mca", istitutionname:   "engineering college"},…]  response headersview source  connection:close  content-type:text/plain  date:tue, 28 apr 2015 06:41:56 gmt   server:apache-coyote/1.1   transfer-encoding:chunked    consolesearchemulationrendering