How do I POST a Pojo with Jersey Client without manually convert to JSON?
client, jackson, java, jersey, json
Solution
If your web-service produces a JSON you must handle that in your client by using an `accept()` method:
ClientResponse response = webResource.accept(MediaType.APPLICATION_JSON).post(searchQuery, MediaType.APPLICATION_JSON);
ListWrapper listWrapper = response.getEntity(ListWrapper.class);
Try this and give your results.
Problem
I have a working json service which looks like this: ``` @POST @Path("/{id}/query") @Consumes(MediaType.APPLICATION_JSON) @Produces(JSON) public ListWrapper query(@Context SecurityContext sc, @PathParam("id") Integer projectId, Query searchQuery) { ... return result } ``` The query object looks like this and when posting a json representation of that Query object it works out nice. ``` @XmlRootElement public class Query { Integer id; String query; ... // Getters and Setters etc.. } ``` Now I want to fill that object from a client and use Jersey client to post that Query object to the service and get an JSONObject as a result. My understanding is that it could be done without converting it to a json object first and then posted as a String. I have tried something like this but I think I miss something. ``` 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; } ``` I'm using Jersey 1.12. Any help or pointer in the right direction would be much appreciated.