0

我有一个用 Apache Wink 1.0 编写的简单 Web 服务,我想接收和返回 JSON 数据。

根据 Wink 文档,这应该可以工作......

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public JSONObject postJSON(JSONObject requestJSON) {
  JSONObject jobj = new JSONObject();
  return jobj;
}

...但是当我尝试访问 Web 服务时看到此错误...

org.apache.wink.server.internal.handlers.PopulateResponseMediaTypeHandler - 
Content-Type not specified via Response object or via @Produces annotation 
so automatically setting via generic-type compatible MessageBodyWriter providers

...任何意见或建议将不胜感激!

4

1 回答 1

0

JSONObject 的用法有点奇怪。更简单、更灵活的方法:

public MyDto postJSON(MyDto dto) {
  //do something
  MyDto md = new MyDto();
  return md;
}

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class MyDto {
  private String f1;
  private int f2;
  //etc.
}

JAX-RS 会将 MyD 序列化为 JSON。实际上,更简洁的方法是返回 Response 对象

public Response postJSON(MyDto dto) {
    //do something
    MyDto md = new MyDto();
    return Response.ok(md);
}
于 2012-04-12T21:45:55.620 回答