枫
for my baby
Xfire之诡异time out版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://canyousee.blogbus.com/logs/41072490.html
这次用Xfire作为客户端来连一个WebService
但诡异的是,总是会随机的抛出
org.codehaus.xfire.fault.XFireFault: Couldn't send message.
Caused by: java.net.SocketTimeoutException: Read timed out的异常
而且经常是很久没访问,再次访问的时候才会出现
Google了一下,都不能解决问题.诡异
后来netstat了一下,发现连接Webservice的TCP的状态一直是ESTABLISHED,即使请求已经完毕了
应该是HttpClient 还一直保留着这个连接.而这个时候如果网络问题导致这个连接出现问题而HttpClient却还不知道继续用这个连接来发送请求就会出现time out了
知道了问题,修改HttpClient的配置
<entry key="disable.expect-continue" value="true"/>
<entry key="http.timeout" value="30000"/>
<entry key="disable-keep-alive" value="true"/>
取消了 expect-continue和keep-alive 这样一旦请求完,连接便会被Closed.从而避免了time out的发生
随机文章:
Axis+JaxRpcPortProxyFactoryBean设置timeout 2009-10-04Annotation 和 Package 2008-04-22S.O.D.A理解 2007-12-10Java与Groovy的整合 2007-10-23AWT+LCD+ClearType=ERROR 2007-10-21
收藏到:Del.icio.us








