将JSON作为application / x-www-form-urlencoded使用

时间:2013-10-28 21:39:27

标签: java json rest jax-rs

我有一个JAX-RS项目POST无效。我有@GET个网址可以正常使用。除了@POST之外,一切似乎都运行良好。

@POST
@Path("/json/insert")
@Produces(MediaType.APPLICATION_JSON)
@Consumes("application/x-www-form-urlencoded")
public String postJSONInsert(
    @FormParam("instance") String instance,
    @FormParam("db") String table) {

    String json;
    EDPObject edp_obj = new EDPObject();

    try {

        json = edp_obj.insert("json", instance, table);

    } catch(Exception e) {

        edp_obj.endSession();
        json = handleJSONError(e);

    }

    return json;

}

在客户端尝试此操作时,在{2}中获取500 not yet connected

$.ajax('http://127.0.0.1:8070/sixaxis/webapi/json/insert', {
    data: {
        db: '17:2',
        instance: 'shawn'
    },
    dataType: 'json',
    type: 'POST'
});

1 个答案:

答案 0 :(得分:4)

你试过了吗?

@Consumes(MediaType.APPLICATION_JSON)

因为你的jQuery是:

dataType:'json'

更新(感谢您的反馈): 那么方法至少应该是:

@POST
@Path("/json/insert")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String postJSONInsert( Map<String,Object> params ){
   // Your business logic
}