Connection pool shut down报错:
今天springboot配置了阿里oss配置类:就一直报错:
com.aliyun.oss.ClientException: Connection error due to: Connection pool shut down
[ErrorCode]: Unknown
[RequestId]: Unknown
一般这种情况就是在阿里使用ossClient.shutdown();方法后继续访问,此时与阿里oss的连接已关闭,自然什么信息都无法获得,但是这种错误是什么情况下造成的呢?
原因:
spring一般为整个容器共享一个对象,如果你在初始化的时候注入对象,并且再后面又没有新new oss的对象,那么再执行一次oss的ossClient.shutdown()方法后将无法执行后面的上传,下载等一系列与oss交互的操作了。
public static OSS creatOss(AliyunOssConfig config) {
return new OSSClientBuilder().build(config.getEndpoint(), config.getAccessKeyId(), config.getAccessKeySecret());
}
解决方法:
1:
解决问题最简单的方法就是每次连接的时候都重新new一个对象,以保证每次与阿里数据交互连接都保持可用状态
2:
同时也可以通过多例的方法解决
@Bean
2 @Scope("prototype")
3 public OSS ossClient() {
5 return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
6 }
3:
当然,也可以选择不 shutdown 复用这一个连接