我的简单JSON JAX-RS Web服务出了什么问题?

时间:2012-03-02 18:17:23

标签: java json jax-rs apache-wink

我有一个用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;
}

...但是当我尝试点击网络服务时,我看到了这个错误...

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

...非常感谢任何建议或建议!

罗布

1 个答案:

答案 0 :(得分:1)

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将序列化MyDto do JSON。实际上,更简洁的方法是返回Response对象

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