У меня есть эта часть кода:
@RequestMapping(value = "/test.json", method = RequestMethod.GET)
@ResponseStatus(HttpStatus.OK)
public @ResponseBody Object[] generateFile(@RequestParam String tipo) {
Object[] variaveis = Variavel.getListVariavelByTipo(tipo);
return variaveis;
}
Насколько я знаю, что это должно взять запрос к test.json? tipo=H и возврат представление JSON Variavel [], однако когда я выполняю такой запрос, я добираюсь:
Состояние HTTP 406 -
введите Отчет о состоянии
сообщение
ресурс descriptionThe, определенный этим запросом, только способен к генерации ответов с характеристиками, не приемлемыми согласно запросу, "принимают" заголовки ()
При помощи следующей функции я могу получить ожидаемый json:
@RequestMapping(value = "/teste.json")
public void testeJson(Model model, @RequestParam String tipo) {
model.addAttribute("data", Variavel.getListVariavelByTipo("H"));
}
Что я делаю неправильно?
@RequestBody
/ @ResponseBody
аннотации не используют обычные преобразователи представлений, они используют свои собственные HttpMessageConverter
s. Чтобы использовать эти аннотации, вы должны настроить эти преобразователи в AnnotationMethodHandlerAdapter
, как описано в справочнике (вам, вероятно, понадобится MappingJacksonHttpMessageConverter
).