【问题标题】:java.lang.IllegalStateException: Connection pool shut down atjava.lang.IllegalStateException:连接池在
【发布时间】:2018-01-20 21:54:02
【问题描述】:

从 S3 下载文件时失败并给我这个异常

java.lang.IllegalStateException:连接池关闭

在 org.apache.http.util.Asserts.check(Asserts.java:34)
在 org.apache.http.pool.AbstractConnPool.lease(AbstractConnPool.java:184) 在 org.apache.http.impl.conn.PoolingHttpClientConnectionManager.requestConnection(PoolingHttpClientConnectionManager.java:251) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
atsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:498) 在 com.amazonaws.http.conn.ClientConnectionManagerFactory$Handler.invoke(ClientConnectionManagerFactory.java:76) 在 com.amazonaws.http.conn.$Proxy70.requestConnection(未知来源) 在 org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:175) 在 org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184) 在 org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184) 在 org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) 在 org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55) 在 com.amazonaws.http.apache.client.impl.SdkHttpClient.execute(SdkHttpClient.java:72) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1190) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1030) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:742) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:716) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667) 在 com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649) 在 com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513) 在 com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4221) 在 com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4168) 在 com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:1249) 在 com.amazonaws.services.s3.transfer.TransferManager.doDownload(TransferManager.java:1053) 在 com.amazonaws.services.s3.transfer.TransferManager.doDownload(TransferManager.java:1007) 在 com.amazonaws.services.s3.transfer.TransferManager.download(TransferManager.java:845) 在 com.amazonaws.services.s3.transfer.TransferManager.download(TransferManager.java:801) 在 com.capitalone.homeloans.imaging.common.s3communicator.AsyncS3Manager.lambda$download$0(AsyncS3Manager.java:82) 在 java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)

【问题讨论】:

  • 请附上您用于下载的代码

标签: java amazon-web-services amazon-s3 aws-sdk


【解决方案1】:

如果您正在合并连接,请不要在请求后关闭您的客户端。

也就是说,你可能正在做这样的事情:

PoolingHttpClientConnectionManager pool = new PoolingHttpClientConnectionManager();
...
CloseableHttpClient httpclient = HttpClients.custom()
     .setConnectionManager(pool)
     .build();

try { // try-with-resources
    HttpGet httpget = new HttpGet(url.toURI());
    try (CloseableHttpResponse response = httpclient.execute(httpget);
             InputStream fis = response.getEntity().getContent();
            ReadableByteChannel channel = Channels.newChannel(fis)) {
             // ... get data ...
     } finally {
         httpclient.close(); <====== !!
     }
} catch (IOException | URISyntaxException e) {
    // exception handling ...
}

httpclient.close() 导致您的下一个池连接失败。


取自:https://stackoverflow.com/a/59033548/1329340

【讨论】:

    猜你喜欢
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    相关资源
    最近更新 更多