Comment puis-je POSTER un Pojo avec Jersey Client sans convertir manuellement en JSON?

J'ai un travail json service qui ressemble à ceci:

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

L'objet de requête ressemble à ceci et lors de la publication d'une représentation json de l'objet de Requête, il travaille sur nice.

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

Maintenant je veux remplir cet objet à partir d'un client et de l'utilisation Jersey client de post que l'objet de Requête pour le service et obtenir un JSONObject. Ma compréhension est que cela pourrait se faire sans le convertir en un objet json en premier et ensuite affichés sous forme de Chaîne.

J'ai essayé quelque chose comme ça, mais je pense que j'ai raté quelque chose.

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;
}

Je suis en utilisant Jersey 1.12.

Toute aide ou un pointeur dans la bonne direction serait très apprécié.

OriginalL'auteur Perty | 2012-04-26