2013-11-07 4 views
0

Я разрабатываю модуль, где я использую службу отдыха для получения данных. Я не получаю, как хранить JSON с помощью Jackson и хранить его с Queryparam. Любая помощь действительно ценится, поскольку я новичок в этом. Я пытаюсь выполнить фильтрацию на стороне сервера в сетке extjs infinte, которая отправляет ниже запрос на службу отдыха.Как хранить JSON в POJO с помощью Jackson

При загрузке страницы первый раз, он посылает:

http://myhost/mycontext/rest/populateGrid?_dc=9999999999999&page=1&start=0&limit=500 

При выборе фильтра на имя и место, он посылает:

http://myhost/mycontext/rest/populateGrid?_dc=9999999999999&filter=[{"type":"string","value":"Tom","field":"name"},{"type":"string","value":"London","field":"Location"}]&page=1&start=0&limit=500 

Я пытаюсь сохранить это в POJO, а затем отправив это в базу данных для извлечения данных. Для этого на отдыхе стороне я написал что-то вроде этого:

@Provider 
@Path("/rest") 
public interface restAccessPoint { 
@GET 
@Path("/populateGrid") 
@Produces({MediaType.APPLICATION_JSON}) 
public Response getallGridData(FilterJsonToJava filterparam,@QueryParam("page") String page,@QueryParam("start") String start,@QueryParam("limit") String limit); 
} 

public class FilterJsonToJava { 
@JsonProperty(value ="filter") 
private List<Filter> data; 
.. getter and setter below 
} 

public class Filter { 
@JsonProperty("type") 
private String type; 
@JsonProperty("value") 
private String value; 
@JsonProperty("field") 
private String field; 
...getter and setters below 
} 

я получаю ошибку ниже:

The following warnings have been detected with resource and/or provider classes: WARNING: A HTTP GET method, public abstract javax.ws.rs.core.Response com.xx.xx.xx.xxxxx (com.xx.xx.xx.xx.json.FilterJsonToJava ,java.lang.String,java.lang.String,java.lang.String), should not consume any entity. 

com.xx.xx.xx.xx.json.FilterJsonToJava, and Java type class com.xx.xx.xx.FilterJsonToJava, and MIME media type application/octet-stream was not found 

[11/6/13 17:46:54:065] 0000001c ContainerRequ E The registered message body readers compatible with the MIME media type are: 

application/octet-stream 
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider com.sun.jersey.core.impl.provider.entity.FileProvider com.sun.jersey.core.impl.provider.entity.InputStreamProvider com.sun.jersey.core.impl.provider.entity.DataSourceProvider com.sun.jersey.core.impl.provider.entity.RenderedImageProvider */* -> com.sun.jersey.core.impl.provider.entity.FormProvider ... 

ответ

0

Вы должны попытаться сделать это таким образом:

Response getallGridData(@QueryParam("filter") String filterparam, ...) { 

ObjectMapper mapper = new ObjectMapper(); 
Filter yourObject = mapper.readValue(filterparam, Filter.class); 

} 

Это это путь, потому что ваша полезная нагрузка находится в параметре запроса. Объект, введенный так же, как и POST-запросы, когда есть полезная нагрузка.

+0

Это работает .. Спасибо Артем – user2963680

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