我有一个用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
...非常感谢任何建议或建议!
罗布
答案 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);
}