【转】关于Xfire客户端HTTP/1.1 100 Continue的解决

本文详细介绍了在使用Xfire开发WebService过程中遇到的100-continue握手问题及其解决方案。通过调整HttpClientParams参数可以有效避免该问题,提高服务效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近,在工作中基于Xfire开发大量的WebService服务,但是始终遇到一个比较棘手的问题:
2008-6-23 10:43:44 org.apache.commons.httpclient.HttpMethodBase writeRequest
信息: 100 (continue) read timeout. Resume sending the request
2008-6-23 10:43:45 org.apache.commons.httpclient.HttpMethodBase readResponse
信息: Discarding unexpected response: HTTP/1.1 100 Continue
2008-6-23 10:43:45 org.apache.commons.httpclient.HttpMethodBase readResponse
信息: Discarding unexpected response: HTTP/1.1 100 Continue
2008-6-23 10:43:48 org.apache.commons.httpclient.HttpMethodBase writeRequest
信息: 100 (continue) read timeout. Resume sending the request
2008-6-23 10:43:48 org.apache.commons.httpclient.HttpMethodBase readResponse
信息: Discarding unexpected response: HTTP/1.1 100 Continue
2008-6-23 10:43:48 org.apache.commons.httpclient.HttpMethodBase readResponse
信息: Discarding unexpected response: HTTP/1.1 100 Continue

虽然,通过查看源代码看出这只是属于Info级别的警告。但是,频繁抛出这样的日志也还是让人不爽,通过也会影响效率。
曾以为是服务端的效率问题,可是很简单的服务情况下,没有大量并发的情况下,问题依然存在。也曾以为是网络的问题,就是部署
本地,自己调自己,还是会有这个问题。实际,上因为Xfire默认的机制下,会不断的去和服务端握手造成的。
调用下面的代码即可解决问题。
HttpClientParams params = new HttpClientParams();
// 避免'Expect: 100-continue' handshake

params.setParameter(HttpClientParams.USE_EXPECT_CONTINUE,Boolean.FALSE);
//设置ws连接超时时间
params.setParameter(HttpClientParams.CONNECTION_MANAGER_TIMEOUT, 100);
client.setProperty(CommonsHttpMessageSender.HTTP_CLIENT_PARAMS,params);

本文出处:http://guojie.blog.51cto.com/59049/86992

说明:在使用Xfire1.2.6、apusic AS 6.0、JDK1.6环境下,

params.setParameter(HttpClientParams.CONNECTION_MANAGER_TIMEOUT, 100);

中的第二个参数“100”,需要修改为“100L”,即整型修改为长整型,否则会抛出“java.lang.Integer cannot be cast to java.lang.Long”的异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值