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