Как отправить Pojo с помощью клиента Джерси без ручного преобразования в JSON?

У меня есть работающая служба json, которая выглядит так:

@POST
@Path("/{id}/query")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(JSON)
public ListWrapper query(@Context SecurityContext sc, @PathParam("id") Integer projectId, Query searchQuery) {
   ...
    return result
}

Объект запроса выглядит так, и при публикации представления json этого

@XmlRootElement
public class Query {
    Integer id;
    String query;
   ... // Getters and Setters etc..
}

Теперь я хочу заполнить этот объект от клиента и использовать клиент Джерси, чтобы отправить этот объект запроса в службу и получить в результате JSONObject. Насколько я понимаю, это можно сделать без преобразования сначала в объект json, а затем публикуется как строка.

Я пробовал что-то подобное, но думаю, что что-то упустил.

public static JSONObject query(Query searchQuery){
    String url = baseUrl + "project/"+searchQuery.getProjectId() +"/query";
    WebResource webResource = client.resource(url);
    webResource.entity(searchQuery, MediaType.APPLICATION_JSON_TYPE);
    JSONObject response = webResource.post(JSONObject.class);
    return response;
}

Я использую Jersey 1.12.

Любая помощь или указатель в правильном направлении. Буду очень признателен.

10
задан Perty 26 April 2012 в 14:39
поделиться