2015-12-16 3 views
1

Я могу вернуть ответ JSON в свой ресурс Dropwizard без каких-либо проблем. Но когда я попытался вернуть JSONPObject, ответ по-прежнему возвращает JSON, а не JSON, завернутый в запрошенную функцию обратного вызова.Сериализовать JSONP/JSONPObject в Dropwizard

@Path("/results") 
@Produces(MediaType.APPLICATION_JSON) 
public class ExperimentResultResource { 

    ... 

    @Path("results/{experimentId}") 
    @GET 
    @Timed 
    public Object getResults(
      @PathParam("experimentId") @NotEmpty long experimentId, 
      @QueryParam("callback") String callback) { 

     .... 
     ExperimentResultRepresentation representation = dataSource.queryResults(query); 
     if (callback != null) { 
      JSONPObject obj = new JSONPObject(callback, representation); 
      return obj; 
     } 
     return representation; 
    } 

Хорошая вещь в том, что, вместо того, выплевывая оригинальный JSON, он сделал включать serializationType и function элемент в теле JSON:

{ 
    "value": { // the original JSON body } 
    "serializationType": null, 
    "function": "jQuery17209002291325014085_1450240336024" 
} 

Я также попытался включая @JSONP аннотацию над метод также. Не повезло.

Любая идея?

ответ

2

Решено.

Использовать com.fasterxml.jackson.databind.util.JSONPObject вместо org.codehaus.jackson.map.util.JSONPObject.

Смежные вопросы