что не так с моим простым веб-сервисом JSON JAX-RS? - PullRequest
0 голосов
/ 02 марта 2012

У меня есть простой веб-сервис, написанный на Apache Wink 1.0, я хочу получать и возвращать данные 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

... любые советы или предложения приветствуются!

Rob

1 Ответ

1 голос
/ 13 апреля 2012

Использование 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 для JSONНа самом деле, даже более чистый подход - вернуть объект Response

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