本文共 881 字,大约阅读时间需要 2 分钟。
背景:日志报错:
参考:
(一)
项目用到了httpclient4.1开发。在多线程的情况下,异常报
Invalid use of SingleClientConnManager: connection still allocated
从国外的一张帖子看到,httpclient默认使用的是SingleClientConnManager,但在并发环境下最好使用ThreadSafeClientConnManager。代码如下:
HttpClient client = new DefaultHttpClient(new ThreadSafeClientConnManager());
HttpGet httpGet = null;
(二)
于是改代码为
static { ThreadSafeClientConnManager cm = new ThreadSafeClientConnManager(); cm.setMaxTotal(100); httpclient = new DefaultHttpClient(cm); httpclient = (DefaultHttpClient) HttpClientConnectionManager.getSSLInstance(httpclient); }
org.apache.httpcomponents httpclient 4.3.5
过两天看看效果吧,最晚一个error是 2.28 10:21
3.2 未再出现过同类error