Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SocketTimeoutException在应用程序运行一段时间后不间断发生,但通过重新启动它可以立即解决_Java_Apache_Http_Socket Timeout Exception - Fatal编程技术网

Java SocketTimeoutException在应用程序运行一段时间后不间断发生,但通过重新启动它可以立即解决

Java SocketTimeoutException在应用程序运行一段时间后不间断发生,但通过重新启动它可以立即解决,java,apache,http,socket-timeout-exception,Java,Apache,Http,Socket Timeout Exception,我有一个crawler Java应用程序,它应该连接到一些HTTP服务器,下载它们页面的HTML内容,然后转到其他HTTP服务器。对于这个任务,我使用了ApacheHTTP库 在运行的最初几个小时,事情似乎运行得相当顺利(有时会抛出一些与连接相关的异常,但这是意料之中的)。 然而,过了一段时间,我似乎每次发出请求都会收到SocketTimeoutException。HttpClient类的“execute”方法不会出现异常,而是在尝试获取实体的内容(从HttpResponse对象检索)或尝试将该

我有一个crawler Java应用程序,它应该连接到一些HTTP服务器,下载它们页面的HTML内容,然后转到其他HTTP服务器。对于这个任务,我使用了ApacheHTTP库

在运行的最初几个小时,事情似乎运行得相当顺利(有时会抛出一些与连接相关的异常,但这是意料之中的)。 然而,过了一段时间,我似乎每次发出请求都会收到SocketTimeoutException。HttpClient类的“execute”方法不会出现异常,而是在尝试获取实体的内容(从HttpResponse对象检索)或尝试将该内容写入文件时出现异常

然后,如果我停止应用程序,并重新启动它,事情似乎会恢复正常——即使它从停止的位置开始恢复,这意味着它正在与我以前尝试与之交互时收到SocketTimeoutException的服务器交互

我试图寻找各种可能的清理,我可能会错过,可能是必要的,当使用这个库,但找不到任何东西

任何帮助都将不胜感激。
谢谢。

这听起来像是连接池造成的问题,如果在客户端库等待检索池连接时超时,则在处理完连接池后,您没有关闭连接池。您确定您正确地关闭了所有内容(在
finally
语句中)


如果您运行以监视流量,在流量“中断”时会发生什么网络流量?

确保您没有同时使用大量http请求。例如,发送5个http请求,并等待第一个响应。然后您可以发出另一个请求等。看起来您的http请求打开了太多的套接字