私は次のような動作中の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..
}
次に、クライアントからそのオブジェクトを入力し、Jerseyクライアントを使用して、そのQueryオブジェクトをサービスに送信し、結果として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;
}
ジャージー1.12を使用しています。
正しい方向へのヘルプやポインタをいただければ幸いです。