web app中线程问题

09-12-16 colingo

WEB服务中有功能是向一第三方服务发送一个POST请求(HttpClient处理),因为第三方服务可能会运算一段时间(5秒以上),故,在处理这一POST请求时创建一个线程来处理。

在Window中运行正确,但是在发布到linux后,这一POST请求会抛出一异常:Connection reset.

不知是何原因。有趣的事,在本地的ubuntu,tomcat上运行,一样有效。

google以后,发现有的人认为是window的httpcllient的jar包有问题,实践证明这一说法并不可信。

不知是不是权限之类的问题,只是怀疑。

求助一下!

[该贴被xinying_ge于2009-12-17 05:46修改过]

1
ACoder
2009-12-17 10:57

公网上的linux机器是否经过防火墙,是否经过了地址转换??业务过程中是否用到了跟客户地址相关的信息。

colingo
2009-12-17 14:49

@ACode

多谢关注。

因为那台linux不在我们这里。但是据我所了解的情况是这样,我们发布app的机器(IP:xxx.xxx.xxx.147)与在app里用HttpClient发送POST请求访问的机器(IP:xxx.xxx.xxx.150)应该是在一个局域网内。

在我们的环境中,无论是在WinXp上或是在Linux(ubuntu)上均可以向xxx.xxx.xxx.150发送POST请求。但是在对方的机器(147)上,发送Post需要等上一段时间,然后然后就得到:Connection reset.

现在我用HttpURLConnection代替HttpClient居然就可以了。

很奇怪!

[该贴被xinying_ge于2009-12-17 14:49修改过]