简体   繁体   English

执行 Apache HttpClient 时出现 java.lang.InterruptedException

[英]java.lang.InterruptedException while executing Apache HttpClient

We use the library org.apache.http.client.HttpClient in accessing other web services from our web services.我们使用库 org.apache.http.client.HttpClient 从我们的 Web 服务访问其他 Web 服务。

HttpRequestBase requestBase = <set uri>
httpClient.execute(requestBase);

Now at certain times, this exception happens:现在在某些时候,会发生这种异常:

* *

Caused by: java.lang.InterruptedException: Operation interrupted
    at org.apache.http.pool.PoolEntryFuture.await(PoolEntryFuture.java:142) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.pool.AbstractConnPool.getPoolEntryBlocking(AbstractConnPool.java:306) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.pool.AbstractConnPool.access$000(AbstractConnPool.java:64) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.pool.AbstractConnPool$2.getPoolEntry(AbstractConnPool.java:192) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.pool.AbstractConnPool$2.getPoolEntry(AbstractConnPool.java:185) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.pool.PoolEntryFuture.get(PoolEntryFuture.java:107) ~[httpcore-4.4.4.jar:4.4.4]
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.leaseConnection(PoolingHttpClientConnectionManager.java:276) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager$1.get(PoolingHttpClientConnectionManager.java:263) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:190) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) ~[httpclient-4.5.2.jar:4.5.2]

* *

Sometimes this this one shows up有时这个这个出现

* *

Caused by: org.apache.http.impl.execchain.RequestAbortedException: Request aborted
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:193) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107) ~[httpclient-4.5.2.jar:4.5.2]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) ~[httpclient-4.5.2.jar:4.5.2]
    at 
Caused by: java.lang.InterruptedException
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2045) ~

* *

This happens intermittently.这会间歇性地发生。 What could be causing this?什么可能导致这种情况? need help on this.在这方面需要帮助。 Will appreciate any advice I could get.我会很感激我能得到的任何建议。

It seems like the http request is being aborted from the client-side.似乎 http 请求正在从客户端中止。 Are you using any sort of thread pool executors in your code, that are submitting requests, and are being cancelled later for any reason (maybe slowness in response from thrid party )?您是否在代码中使用了任何类型的线程池执行程序,这些线程池执行程序正在提交请求,并且稍后因任何原因被取消(可能是第三方响应缓慢)?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 执行Java类时发生异常。 java.lang.InterruptedException - An exception occured while executing the Java class. java.lang.InterruptedException 运行批处理文件时出现 java.lang.InterruptedException - java.lang.InterruptedException while running a batch file Azure MobileService EasyApi java.lang.interruptedException - Azure MobileService EasyApi java.lang.interruptedException 使用swingworker的java.lang.InterruptedException - java.lang.InterruptedException using swingworker 未处理的异常:java.lang.InterruptedException - Unhandled Exception: java.lang.InterruptedException 引起原因:java.lang.RuntimeException:java.lang.InterruptedException - Caused by: java.lang.RuntimeException: java.lang.InterruptedException 使用Process.waitFor()和java.lang.InterruptedException的Java多线程 - java multithreading using Process.waitFor() and java.lang.InterruptedException SpringApplication.exit() retuns java.lang.InterruptedException: null - SpringApplication.exit() retuns java.lang.InterruptedException: null java.lang.InterruptedException导致Web应用程序无法部署 - java.lang.InterruptedException causes web application not deploy ReactiveException: java.lang.InterruptedException 当我用@HystrixCommand 标记方法时 - ReactiveException: java.lang.InterruptedException when I mark method with @HystrixCommand
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM