记一个weblogic服务器下Content-Length can't be present with chunked encoding的问题。
问题发现:用springmvc开发的接口,
本地用tomcat启动,用postman测试时正常返回,部署到服务器后,再用postman去访问,报错,一开始以为时服务器问题,重新部署好几次一直存在这个问题,后来考虑到服务器上用的时weblogic中间件,故本地也采用weblogic作为服务器,重现了该问题,查阅相关资料,发现tomcat对返回值校验并不严格(content-length可以和内容字节长度不一致),而weblogic对返回值要求比较严格(content-length和内容字节长度需要保持一致),修改代码
增加content-length属性,再次用weblogic发布并且用postman访问,结果正常
。
记几个截图:
1、用tomcat部署时,response不手动设置content-length属性,postman访问结果
2、用weblogic部署时,response不手动设置content-length属性,postman访问结果
3、用weblogic部署时,response手动设置content-length属性,postman访问结果
注:手动设置字节长度时,需要跟返回值类型一致,否则返回值长度与实际内容不符,会报错(设置的长度小于内容长度,postman无法获取返回结果,设置的长度大于内容长度,postman能获取返回结果,但是后台会报实际长度与设置长度不符的错误)