В моем веб-приложении все мои конвертеры сообщений на месте, и если я изменю приведенный ниже getContent для возврата bean / pojo, он вернется как «application / json; charset = UTF-8», что ожидается, но теперь я хочу служить JSON "как есть".
например. У меня есть простой веб-сервис-заглушка, с помощью которого пользователи могут помещать BLOB-контент JSON, который сохраняется где-то, а затем эквивалентный вызов GET, чтобы прочитать его обратно.
@Controller
public class StubController {
@Autowired
@Qualifier("keyValueStore")
private KVStore kv;
@RequestMapping(value = "/stub/{id}", method = RequestMethod.GET)
public @ResponseBody
String getContent(@PathVariable("id") final String id) {
return kv.get(id);
}
@RequestMapping(value = "/stub/{id}", method = RequestMethod.PUT)
public String putContent(@PathVariable("id") final String id, @RequestBody String body) {
kv.set(id, body);
return "redirect:/stub/"+id;
}
}
Однако получатель возвращает заголовок «Content-Type: text / html; charset = UTF-8», если я вызываю http://host/stub/123.json в браузере. Я предполагаю, что это происходит потому, что я не возвращаю ничего, «преобразованного» конвертером Джексона, поэтому заголовок возврата не изменяется.
Мне нужно, чтобы это был application / json - есть идеи, что делать? Возможно, аннотация, с помощью которой я могу указать возвращаемые заголовки?