httpclient提交json到tomcat,接收到的json却是不完整的
< 返回列表时间: 2017-12-19来源:开源中国
HDC调试需求开发(15万预算),能者速来!>>>
写了一个rest接口,接口接受json数据解析批量入索引。入索引的频率和大都挺大的,每天看日志都会有几条写入失败,原因是收到client端的数据不完整,是一个被截断的json。如图:

我是通过httprequest的getInputStream自己解析的,解析出来就成这个样子了。长度我也记录了一下,65k多,不可能是超过tomcat接受post请求体大小限制导致的,maxPostSize我配置了50M。
客户端使用httpclient传输的,一开始担心是客户端的问题,我在客户端做了json校验,但凡客户端不是json格式直接返回失败抛出异常,但是产生这条日志的时候,客户端并没有抛异常。而且客户端是把json字符串封装成一个实体作为api,然后再反序列化成字符串传输的,如果是使用者字符串拼的有问题,肯定会在前端先报错。
那么问题就集中在服务端了,到底还有什么限制会导致服务端接受数据不全吗?我还想到一种可能,就是数据再到达我这里的时候中间经历过三次json序列化和反序列化:业务数据序列化成埋点json字符串,消费端接受mq中埋点信息反序列化成实体,通过client api序列化成json字符串传输到tomcat,几次解析都使用fastjson,所以会不会是几次解析使用的版本不一样导致的呢?tomcat用的1.2.7 client用的1.2.9
热门排行