com.aliyun.oss.ClientException: Connection error due to: Connection pool shut down


com.aliyun.oss.ClientException: Connection error due to: Connection pool shut down
[ErrorCode]: Unknown
[RequestId]: Unknown


原因:如果你使用的spring的注入方式,那么所獲取的OSS是一個單例對象。
當使用ossClient.shutdown()時,下一次請求將無法獲取連接。

Spring單例對象注入

1     @Bean
2     public OSS ossClient() {
3         return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
4     }

 


解決方案:使用多例注入@Scope("prototype"),或者直接 new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret)

1     @Bean
2     @Scope("prototype")
3     public OSS ossClient() {
4 //        return new OSSClient(endpoint, accessKeyId, accessKeySecret);
5         return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
6     }

 


獲取OSS對象,可以定義一個方法單獨返回。那么每一次調用這個方法都會產生一個新的對象。

1     /**
2      * 獲取ossClient對象(多例)
3      * 由於使用完成需要關閉,所以需要創建多例的ossClient對象
4      */
5     private OSS getOssClient(){
6         return ossConfiguration.ossClient();
7     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM