我正在使用javax创建REST服务,以将Java对象从一个系统发送到另一个系统。
我发送数据如下:
WebTarget wt = client.target(baseUrl.toString()).path(restUrlSuffix);
response = wt.request(MediaType.APPLICATION_JSON).post(Entity.json(transferJSON));
我定义了一种应以JSON形式接收实体的方法:
@POST
@Path("/post")
@Consumes("application/json")
@Produces("application/json")
public Response saveWorkflowDefinition(@Valid String json) {
.....
.....
String message = "Message to return";
Response res = Response.ok(message).build();
return res;
}
使用这种方法,一切都很好。数据以JSON的形式到达,可以将其转换回我的java类,然后我可以再次使用该对象。
似乎响应也是正确的。 如果我调试代码,则响应将正确填充。
但是在我要接收此响应并检查它的那一侧,实体部分为空。
我不知道为什么?
答案 0 :(得分:1)
我找到了解决方案。 我必须在WebTarget请求中添加一个“有效” readEntity。 就我而言,我已经编写了一个响应对象,也许String.class也可以工作。稍后我需要在代码中使用响应类来传输一些更详细的信息。
response = wt.request(MediaType.APPLICATION_JSON).post(Entity.json(transferJSON)).readEntity(WFResponse.class);