|||
最近碰到很奇怪的问题,一个rest的url在浏览器和模拟器中访问正常,但通过java后台访问总是404,经过排查,发现返回类型为String(json格式)的controller不能通过@ResponseBody注解,这样后台访问时会去查找对应的页面文件从而导致404错误,需要改成void类型,同时通过HttpServletResponse返回,具体解释如下:
MappingJacksonHttpMessageConverter调用objectMapper.writeValue(OutputStream stream, Object)方法,使用@ResponseBody注解返回的对象传入Object参数内。若返回的对象为已经格式化好的json串时,不使用@RequestBody注解,而应该这样处理:
1、response.setContentType("application/json; charset=UTF-8");
2、response.getWriter().print(jsonStr);
直接输出到body区,然后的视图为void
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-9-27 15:19
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社