一、背景介绍:
在跟踪java后台采用rest_template发起httpclient调用的时候,发现有一个ClientProtocolException,以下为异常信息堆栈:
根据以上堆栈信息,跟踪到DefaultHttpResponse的parseHead方法中,解析response的协议头出现了问题,由于这个bug的偶发性比较大(大概1000次偶发1次,而且不定时)现决定对httpclient的源码进行修改,增加log,进行跟踪。
二、修改:
1、备份maven仓库中的httpclient的jar包。
2、定位pom.xml里所使用的httpclient源码为4.3.3,打开你的maven仓库,解压缩httpclient-4.3.3-sources.jar,并在eclipse里新建maven项目,导入刚才的httpclient的source代码,并拷贝httpclient的依赖pom,httpclient-4.3.3.pom,重新修改和编译并打包生成新的httpclient jar包。
3、本地测试通过。