在我的web应用程序中,我所有的消息转换器都已到位,如果我在下面更改getContent以返回一个bean/pojo,它会以“application/json; charset = UTF-8“,这是预期的,但我现在想要”按原样“服务JSON。从Spring控制器使用内容谈判服务JSON“原样”
E.g.我有一个简单的存根Web服务,用户可以将PUT一个JSON内容的blob保存在某个地方,然后用一个等效的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;
}
}
然而,吸气剂返回报头 “内容类型:文本/ HTML;字符集= UTF-8” 如果我叫在浏览器http://host/stub/123.json。我猜这是因为我没有返回任何被Jackson转换器“转换”的东西,因此返回的头文件没有被修改。
我需要它是应用程序/ json - 任何想法该怎么办?也许我可以指定返回标题的注释?