【发布时间】:2014-03-12 20:12:17
【问题描述】:
我整天都在苦苦挣扎,试图将一个非常简单的 JSON 请求绑定到一个使用 Jersey 的方法。我似乎找不到问题所在,非常感谢任何帮助。
我的 JSON 请求就这么简单:
{"user":"xyz","pwd":"123"}
我的 Jersey 课程如下所示:
@Path("/rest")
public class JerseyService {
@POST
@Produces(MediaType.APPLICATION_JSON + ";charset=utf-8")
@Consumes(MediaType.APPLICATION_JSON)
@Path("authenticate.svc")
@Transactional(readOnly = true)
public Response authenticate(
String user,
String pwd) throws IOException {
Response.ResponseBuilder responseBuilder = Response.ok();
responseBuilder.entity(JsonSerializer.serialize(Status.SUCCESS));
return responseBuilder.build();
}
}
当我将 JSON 请求按原样发送到服务时,“user”参数设置为将整个 JSON 请求作为字符串 (user = "{\"user\":\"xyz\",\" pwd\":\"123\"}"),而 pwd 保持为空。
我尝试过使用 @QueryParam、@FormParam 以及其他带有“user”和“pwd”的注释,但我找不到 Jersey 将 JSON 值绑定到 Java 参数的方法。
对我做错了什么有任何想法吗?
谢谢!
【问题讨论】: