SpringMVC3中返回json字符串时500 Internal Server Error的处理方案
2015-05-14 10:55
423 查看
搭建 Spring3+MyBatis+Rest+BootStrap+JBPM项目环境后,测试发现了一个操蛋的问题。
使用Spring MVC的自动类型转换为JSON时,后台数据List/Map获取完全正常,可是JS获取data报500错误。
后台无任何异常信息。
问题解决思路:
后台数据操作正常,数据返回前端时候异常,问题集中在Spring的jackson json转换上。
而Spring用了第三方的Jackson Json数据转换,异常信息的获取需要靠它,代码中加入如下部分:
顺利的打出了异常信息,如下:
异常找到,解决就很简单了。
使用Spring MVC的自动类型转换为JSON时,后台数据List/Map获取完全正常,可是JS获取data报500错误。
后台无任何异常信息。
问题解决思路:
后台数据操作正常,数据返回前端时候异常,问题集中在Spring的jackson json转换上。
而Spring用了第三方的Jackson Json数据转换,异常信息的获取需要靠它,代码中加入如下部分:
/** * 查询题库所有记录 * @param req * @param model * @return */ @RequestMapping @ResponseBody public Map<String, Object> getAllRecord(HttpServletRequest req, ModelMap model) { List<QuestionWh> allQuestions = questionWHService.selectAllQuestionWH(); model.put("aaData",allQuestions); model.put("iTotalRecords",allQuestions.size()); model.put("iTotalDisplayRecords",allQuestions.size()); // 测试返回对象的Jackson json转换 ObjectMapper om = new ObjectMapper(); try { om.writeValueAsString(allQuestions); } catch (JsonGenerationException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return model; }
顺利的打出了异常信息,如下:
org.codehaus.jackson.map.JsonMappingException: No serializer found for class java.io.ByteArrayInputStream and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationConfig.Feature.FAIL_ON_EMPTY_BEANS) ) (through reference chain: java.util.ArrayList[0]->java.util.HashMap["CREATETIME"]->oracle.sql.TIMESTAMP["stream"])
异常找到,解决就很简单了。
相关文章推荐
- ajax返回json格式 报500 Internal Server Error
- json返回报错 浏览器报错500 InternalServer Error
- http 500 Internal Server Error的错误 ajax请求SpringMVC后台中返回500 Internal Server Error
- Spring MVC+hibernate 使用@ResponseBody返回json报500 (Internal Server Error)
- SpringMVC3中复杂对象返回json出现 500 error的解决
- Sys.WebForms.PageRequestManagerServerErrorException: 在服务器上处理请求时出现未知错误。服务器返回的状态码为: 500
- PageRequestManagerServerErrorException: 在服务器上处理 请求时出现未知错误。服务器返回的状态码为: 500
- 在使用updatepanel 时,上传到服务器出现如下错误: Sys.WebForms.PageRequestManagerServerErrorException: 在服务器上处理请求时出现未知错误。服务器返回的状态码为: 500
- 一个ASP.NET MVC中ajax调用WebApi返回500 Internal Server Error的调错方法。
- 前台jquery+ajax+json传值,后台处理完后返回json字符串,如何取里面的属性值?(不用springmvc注解) 一.取属性值
- Apache 2.2 安装好后新建任意 PHP 文件访问时返回 500 Internal Server Error 解决方法
- springMVC中返回json时,日期类型自动转换为long类型的时间戳的处理方案(一个配置解决)
- Sys.WebForms.PageRequestManagerServerErrorException: 在服务器上处理请求时出现未知错误。服务器返回的状态码为: 500
- 前台jquery+ajax+json传值,后台处理完后返回json字符串,如何取里面的属性值?(不用springmvc注解)
- 阿里云服务器错误:500-内部服务器错误,500.21 - Internal Server Error处理程序“PageHandlerFactory-Integrated”
- python urllib2导出elasticsearch数据时 返回 "urllib2.HTTPError: HTTP Error 500: Internal Server Error"
- 错误: Sys.WebForms.PageRequestManagerServerErrorException: 在服务器上处理 请求时出现未知错误。服务器返回的状态码为: 500
- SpringMVC3.2 处理Ajax请求时返回json字符串的中文乱码问题
- Ajax 传递json字符串到客户端时报 Internal server error
- Sys.WebForms.PageRequestManagerServerErrorException: 在服务器上处理请求时出现未知错误。服务器返回的状态码为: 500 .