我注意到当我使用Response.status(201).entity(id).build
时,它会返回以下错误:
严重:找不到媒体类型= application / json的MessageBodyWriter,type = class java.lang.Integer,genericType = class java.lang.Integer。
@POST
@Produces({"application/json"})
public Response createUser(
@NotNull @FormParam("username") String username,
@NotNull @FormParam("password") String password,
@NotNull @FormParam("role") String role) {
int id = 12;
return Response.status(201).entity(id).build();
}
答案 0 :(得分:1)
单个Integer
对象无法转换为JSON,因为JSON就像地图(键值对)。你必须选择:
1)将返回的类型更改为文本
@Produces({"text/plain"})
2)创建一个表示单个值为JSON的类,如:
class IntValue {
private Integer value;
public IntValue(int value) {
this.value = value;
}
// getter, setter
}
然后执行以下操作
return Response.status(201).entity(new IntValue(id)).build();
答案 1 :(得分:0)
"1"
无效JSON
。您应该将号码包装到某个实体或将"application/json"
更改为"application/text"
。