- 浏览: 32449 次
- 性别:
- 来自: 湖南
文章分类
最新评论
Axis2的连接主要采用了HttpClient进行与服务器的服务的交互,其中的代码分析看出Httpclient的多线程支持代码的编写,记录下来,便于以后用到使用
protected HttpClient getHttpClient(MessageContext msgContext) { HttpClient httpClient; final ConfigurationContext configContext = msgContext.getConfigurationContext(); synchronized (lock) { httpClient = (HttpClient) configContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT); if (httpClient == null) { log.trace("Making new ConnectionManager"); HttpConnectionManager connManager = new MultiThreadedHttpConnectionManager(); // In case we need to set any params, do it here, but for now use defaults. // HttpConnectionManagerParams params = new HttpConnectionManagerParams(); // params.setMaxConnectionsPerHost(HostConfiguration.ANY_HOST_CONFIGURATION, 200); // etc... // connManager.setParams(params); httpClient = new HttpClient(connManager); HttpClientParams clientParams = new HttpClientParams(); // Set the default timeout in case we have a connection pool starvation to 30sec clientParams.setConnectionManagerTimeout(30000); httpClient.setParams(clientParams); configContext.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient); } // Get the timeout values set in the runtime initializeTimeouts(msgContext, httpClient); } return httpClient; }
MultiThreadedHttpConnectionManager就是用来解决线程安全性的,HttpClient自动维护他们的关系
其中MultThreadedHttpConnectionManage有如下r参数配置:
connectionStaleCheckingEnabled:这个标志对所有已经创建的connections都适用。除特殊情况外,此值应该设置成true。
maxConnectionsPerHost:最大连接数,默认是2。
maxTotalConnections:最大活动连接数,默认是20
所以可以根据具体需要调整参数的大小
特别注意
在使用完成了连接以后一定需要手动关闭连接,由于他自己无法进行自动连接释放,所以需要手动释放连接。
发表评论
-
HttpClient容易忽视的细节——连接关闭
2012-03-02 09:15 581HttpClient client = new HttpCli ... -
HttpClient超时区别
2012-03-02 09:07 1042HttpClient 4 设置超时 httpclient 超时 ... -
HttpClient Theading
2012-03-01 10:49 638有技术兴趣的 请加28830308群. 这篇文章概括了怎样在 ... -
HttpClient使用
2012-03-01 10:43 671有技术兴趣的 请加28830308群. HttpClien ... -
线程请求执行,一个多线程程执行HTTP请求的例子。
2012-03-01 10:40 1718package cn.lake.util; import ... -
httpclient 4 下载 文件
2012-03-01 10:38 887import java.io.File; import ja ... -
使用了httpclient实现的上传商品的demo
2012-03-01 10:36 1117package com.taobao.top.sample.u ... -
socket简介
2012-02-07 10:58 652第一步 充分理解Socket ... -
转载socket
2012-02-07 10:57 530对TCP/IP、UDP、Socket编程这些词你不会很陌生吧? ... -
Java的synchronized关键字:同步机制总结
2012-02-07 10:54 535不久前用到了同步,现在回过头来对JAVA中的同步做个总结,以对 ... -
JAVA RMI
2012-02-07 10:53 545Java RMI 指的是远程方法调用 (Remote Meth ... -
JXL生成复杂的EXCEL
2011-12-26 13:52 1343public String ExcelTaskRepo ... -
如何快速的为现有数据库建立数据字典?
2011-12-20 13:55 955大部分项目在验收时都需要向客户提供一份详细的数据字典,而编写数 ... -
在java中获取客户端真实的IP地址
2011-12-20 13:55 522public static String getRemoteA ... -
用JavaMail的API发送邮件
2011-12-20 13:55 5001、MimeMessage的包装类 public c ... -
在项目中整合FreeMarker框架
2011-12-16 15:40 558FreeMarker是一个用Java编写的模板引擎,既可以 ... -
Commons FTP范例
2011-12-16 15:33 480public class FtpUtil { privat ... -
Java实现的图片生成器
2011-12-16 15:32 486一、本图片生成器具有以下功能特性: 1、可以设置图 ... -
jacob学习总结
2011-12-16 15:27 402JACOB 就是 JAVA-COM Bridge的缩写,提供自 ... -
长短信发送范例
2011-12-16 15:25 659一、关键代码: private synchronized v ...
相关推荐
主要介绍了使用java的HttpClient实现多线程并发的相关资料,需要的朋友可以参考下
Java的线程回顾 匿名内部类 Android的多线程技术之Handler Android的多线程技术之AsyncTask HTTP概述 HTTPClient
9. 连接管理器支持多线程应用。支持设置最大连接数,同时支持设置每个主机的最大连接数,发现并关闭过期的连接。 10. 自动处理Set-Cookie中的Cookie。 11. 插件式的自定义Cookie策略。 12. Request的输出流可以避免...
C# 多线程 线程同步 线程池 lock 三种异步编程模型, TPL详细运用讲解,httpClient线程的运用
多线程,epoll,libevent网络库分别实现的三个网络HTTP服务器程序
新闻客户端1、安装tomcat2、写新闻客户端3、smartimageview4、自定义smartimageview七、三种提交数据到服务器的方式1、使用HttpURLConnection方式把数据提交到服务器2、接口HttpClient3、使用开源项目...
Java并发编程:03-多线程并发下载器, 支持断点下载(手写不限速的迷你版迅雷) 主要是最近学习完一些初级的并发知识, 所以想使用这些知识做一个小小工具, 巩固一下知识点, 然后就想到了多线程并发下载文件的这个小工具...
多线程与异步处理:为了提高抓取效率,可以使用多线程技术同时抓取多个网页;使用异步处理来优化网络请求和数据处理。 反爬虫策略应对:针对网站的反爬虫策略(如验证码、访问频率限制等),实现相应的应对措施,...
一个支持多线程的服务器框架,GeneralServer.java; 代理服务器,ProxyServer.java; telnet客户端,访问系统的telnet服务实质上是与telnet服务建立socket连接,默认的telnet服务的端口是23,TelnetClient.java; ...
MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...
MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...
MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...
MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...
MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...
MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...
MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...
MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...
MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...
MyBatchFramework 是一个开源的轻量级的用以创建可靠的易管理的批量作业的Java包,主要特点是多线程、调度、JMX管理和批量执行报表,执行历史等。 SIP协议包 jSIP.tar jSIP这个Java包目标是用Java实现SIP(SIP:...