码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC3中返回json字符串时500 Internal Server Error的处理方案

时间:2015-05-14 11:29:42      阅读:852      评论:0      收藏:0      [点我收藏+]

标签:

搭建 Spring3+MyBatis+Rest+BootStrap+JBPM项目环境后,测试发现了一个操蛋的问题。
使用Spring MVC的自动类型转换为JSON时,后台数据List/Map获取完全正常,可是JS获取data报500错误。
后台无任何异常信息。

问题解决思路:
后台数据操作正常,数据返回前端时候异常,问题集中在Spring的jackson json转换上。
而Spring用了第三方的Jackson Json数据转换,异常信息的获取需要靠它,代码中加入如下部分:

 1 /**
 2      * 查询题库所有记录
 3      * @param req
 4      * @param model
 5      * @return
 6      */
 7     @RequestMapping
 8     @ResponseBody
 9     public Map<String, Object> getAllRecord(HttpServletRequest req,
10             ModelMap model) {
11         List<QuestionWh> allQuestions = questionWHService.selectAllQuestionWH();
12         model.put("aaData",allQuestions);
13         model.put("iTotalRecords",allQuestions.size());
14         model.put("iTotalDisplayRecords",allQuestions.size());
15         
16         // 测试返回对象的Jackson json转换
17         ObjectMapper om = new ObjectMapper();
18         try {
19             om.writeValueAsString(allQuestions);
20         } catch (JsonGenerationException e) {
21             e.printStackTrace();
22         } catch (JsonMappingException e) {
23             e.printStackTrace();
24         } catch (IOException e) {
25             e.printStackTrace();
26         }
27         
28         return model;
29     }

顺利的打出了异常信息,如下:

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"])

异常找到,解决就很简单了。

 

SpringMVC3中返回json字符串时500 Internal Server Error的处理方案

标签:

原文地址:http://www.cnblogs.com/huahua035/p/4502752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!