应用系统调用消息中心,将对象使用jackson mapper解析成string后,放到body发送到消息中心,消息中心在进行decoder的时候报出 “java.lang.StringIndexOutOfBoundsException: String index out of range: -1” 的异常。
经过断点,发现spring通过
String addMsg(@RequestBody String msgParams) throws Exception
获取到的msgParams为空。当时想到的原因在于两个: 1、jackson解析大数据的时候结果为空 2、post的body长度存在限制
经过验证,jackson解析大数据没有问题。
查了一下tomcat的文档,发现tomcat有个默认的maxPostSize,值为2097152 (即2MB)。
进一步在开发环境,确实是由body长度超过默认的maxPostSize而导致。