spring-mvc - Spring mvc ajax请求返回的数据量过大导致报错

查看:761
本文介绍了spring-mvc - Spring mvc ajax请求返回的数据量过大导致报错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

因为代码很简单且对问题没有意义,我就不贴了,大家看我描述就行。
前台ajax.post方式请求后台数据,后台@ResponseBody注解返回一个JSONObject对象,问题在于,我后台得到的数据量有可能会比较大,我单独提取出来看过,有118612字节数据,将近12万了,保存下来的话有120KB。
我后台单独输出数据是正常的(return null; 写死),此时是不报错的。但是我把数据返回的话(return result;)就不行了,此时后台会报WARN,然后前台ajax报500错误(Internal Server Error)
这是后台的警告,需要的可以看一下

WARN  [ 2017-06-23 15:57:54 379 ]: org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver.handleHttpMessageNotWritable(DefaultHandlerExceptionResolver.java:407) - Failed to write HTTP message: org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON document: Object is null (through reference chain: net.sf.json.JSONObject["scene"]->net.sf.json.JSONArray[0]->net.sf.json.JSONObject["groupsname"]->net.sf.json.JSONNull["empty"]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Object is null (through reference chain: net.sf.json.JSONObject["scene"]->net.sf.json.JSONArray[0]->net.sf.json.JSONObject["groupsname"]->net.sf.json.JSONNull["empty"])

另外说一下,查到网上很多说分页解决的,但是我这边返回的数据是一个树状图的结构,并不是常见的分页展示数据量大的问题,主要是树结构复杂导致的。所以如果想说分页解决的,请说明如何解决,至少正常思路肯定是不行的。

最后要说的是,其实我并不能肯定是数据量过大导致的问题,只能说很有可能是而已。

解决方案

刚刚从国外网站上找到了一点思路,原来不是数据量过大导致的,而是json格式不正确导致的。
因为我上面说的树状json数据是从其他软件的接口提供的,然后发送过来的时候这部分数据是以string的形式,我这边把它转化成json格式的数据以后,值为null的数据在后台打印的时候看起来是没问题的,但是spring mvc返回到前台的时候却会出错。
解决方案:获取到string的时候,批量替换字符串null为空字符串。

这篇关于spring-mvc - Spring mvc ajax请求返回的数据量过大导致报错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆