Wie Stelle ich ein Pojo mit der Jersey-Client, ohne Sie manuell konvertieren zu JSON?

Ich habe einen json-service die wie folgt aussieht:

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

Dem query-Objekt sieht wie folgt aus und, wenn Ihr eine json-Darstellung der Query-Objekt, funktioniert es gut.

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

Will ich jetzt füllen, das Objekt von einem client, und verwenden Sie die Jersey-client-zu-post-Query-Objekt an den service und Holen Sie sich ein JSONObject als Ergebnis. Mein Verständnis ist, dass es getan werden könnte, ohne Umwandlung in ein json-Objekt zuerst, und dann gepostet als String.

Ich habe versucht, so etwas wie das, aber ich denke ich verpasse etwas.

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

Bin ich mit Jersey 1.12.

Jede Hilfe oder Zeiger in die richtige Richtung wäre sehr geschätzt werden.

InformationsquelleAutor Perty | 2012-04-26
Schreibe einen Kommentar