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     }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏测试技术圈

Grails——赋能敏捷开发的利器

几年前,一个开餐厅的亲戚找我做一个网上订餐的网站(当时外卖平台还没有兴起)。一开始我是拒绝的,因为我的本职工作就是做软件开发的,业余时间真没兴趣再做。而且从头开...

13350
来自专栏服务化进程

disconf分布式配置管理(二) 与spring集成

上一章介绍了disconf的安装预配置,这章主要介绍下disconf与spring集成

9530
来自专栏服务化进程

基于druid和spring的动态数据库以及读写分离

spring与druid可以实现动态数据源,夸库查询,读写分离等功能。现在说一下配置:

20150
来自专栏服务化进程

spring声明事务失效问题

在项目开发中遇到了一个spring事务失效的问题,检查配置文档,都没有问题,其他的类中的方法都能进行事务管理,而这个类中的方法却不行。

12250
来自专栏服务化进程

微服务架构springcloud

服务化的核心就是将传统的一站式应用根据业务拆分成一个一个的服务,而微服务在这个基础上要更彻底地去耦合,并且强调DevOps和快速演化。

10750
来自专栏服务化进程

spring同时集成mybatis和ibatis

最近来了一个新项目,说是新的项目,但是需要用到以前旧的模块代码,旧的模块使用架构为ssi

11940
来自专栏服务化进程

springcloud经验

8910
来自专栏测试技术圈

实战契约测试

“ 消费者驱动契约测试对于API或微服务开发非常重要,它解耦了API提供者和消费者间的开发与测试过程。”

15930
来自专栏Java编程指南

解释一下Spring框架AOP(面向切面编程)

文章开头我先把上一期spring事物这篇文章(spring事物管理)最后的问题解答一下:

11820
来自专栏服务化进程

quartz集成spring集群部署

由于quartz单节点无法满足业务的需求,后面我们在单节点的基础上进行了集群部署。

13520

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励