如何将JSON对象发送到休息webservice?

时间:2013-08-01 06:21:07

标签: java rest java-ee

我在http://localhost:8600/rest/student/details有一个休息网络服务,它会将学生的详细信息更新为数据库。我必须在方法帖子中以JSON格式发送详细信息。

以下是生成该json消息的方法

private void createOrUpdateStudent(WebResource service) {
    Gson gson = new Gson();

    StudentImpl student= new StudentImpl ();

    student.setId(6);
    student.setName("Godwin");
    student.setSex("Male");     

    StudentView view = new StudentView(student);        

    System.out.println("::::::"+service.path("/rest/student").path("/details").type("application/json").post(ClientResponse.class, gson.toJson(view)));
}

其中studentView类如下所示。

@XmlRootElement(name="clusterZipcode")
public class StudentView {  

    public Integer id;
    public String name;
    public String sex;


   public StudentView() {}

   public StudentView(StudentImpl  student) {
        this.id = student.getId();
        this.name = student.getName();
        this.sex = student.getSex();

   }

在发送时如上所述我收到错误说明Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Column 'Name' cannot be null

我是否正确传递了json值,或者如果有其他方法发送json消息,请建议我。

1 个答案:

答案 0 :(得分:0)

我在你的帖子上看不到你在哪里打电话给数据库。我只能看到你正在创建一个学生,然后从那里创建一个视图(假设正在调用此方法)。您获得的错误与以下事实有关:在某些时候,您正在调用数据库以在(可能)您的学生模型中输入新行。如果你已经休眠了,你可以确保你在为学生打电话和你打电话给setName之间的任何一点上都没有调用.save或.update吗?