Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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.lang.IllegalStateException:连接池在关闭_Java_Amazon Web Services_Amazon S3_Aws Sdk - Fatal编程技术网

java.lang.IllegalStateException:连接池在关闭

java.lang.IllegalStateException:连接池在关闭,java,amazon-web-services,amazon-s3,aws-sdk,Java,Amazon Web Services,Amazon S3,Aws Sdk,当从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.poolighttpclientconnectionmanager.

当从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.poolighttpclientconnectionmanager.requestConnection(poolighttpclientconnectionmanager.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) 在 amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1190) 在 amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1030) 在 amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:742) 在 amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:716) 在 amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699) 在 amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667) 在 amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649) 在 com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513) 在 amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4221) 在 amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4168) 在 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$下载$0(AsyncS3Manager.java:82) 在 CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 运行(Thread.java:745)


如果要共享连接,请不要在请求后关闭客户端

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

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 ...
}
poolghttpclientconnectionmanager pool=new-poolghttpclientconnectionmanager();
...
CloseableHttpClient httpclient=HttpClients.custom()
.setConnectionManager(池)
.build();
try{//try with resources
HttpGet-HttpGet=newhttpget(url.toURI());
try(CloseableHttpResponse-response=httpclient.execute(httpget);
InputStream fis=response.getEntity().getContent();
ReadableByteChannel通道=通道。新通道(fis)){
//…获取数据。。。
}最后{

httpclient.close();请包含下载时使用的代码