永久方案:请参考《阿里云对象存储OSS奇葩异常的隐秘原因》。(2021-01-06更新)
--------------------以下为原文:------------------------------
目前,使用阿里云OSS时,能勉强使用的版本组合为:
Spring Cloud:Hoxton.SR8;
Spring Boot:2.3.7.RELEASE;
spring-cloud-alibaba-dependencies:2.2.0.RELEASE;
spring-cloud-starter-alicloud-oss:2.2.0.RELEASE(该本版号可不指定);
MyBatis Plus:3.4.1;
JDK:11.0.9;
Nacos:1.4.0。
这就是本文要说的临时解决方案。之所以说它临时,是因为该方案无法保证启动应用程序和OSS上传文件同时成功!
具体方法:启动应用程序之前,先将spring-cloud-starter-alicloud-oss依赖注释掉。等应用程序启动成功之后,再取消依赖的注释,使用OSS文件上传功能。
-------------------------------------------强制分割线----------------------------------------
以下是测试过程中的部分异常记录:
按照官方的github项目示例《阿里云Spring Boot OSS Simple》,将aliyun-oss-spring-boot-starter添加到pom.xml依赖中,示例如下:
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>aliyun-oss-spring-boot-starter</artifactId>
</dependency>
并在application.properties中添加access-key、secret-key和endpoint:
alibaba.cloud.access-key=LT***t
alibaba.cloud.secret-key=xi***UZ
alibaba.cloud.oss.endpoint=oss-cn-beijing.aliyuncs.com
测试启动应用,启动失败,部分异常如下:
2021-01-03 21:51:58.864 ERROR 16672 --- [ main] o.s.boot.SpringApplication : Application run failed
java.lang.IllegalStateException: Error processing condition on com.alibaba.alicloud.context.oss.OssContextAutoConfiguration.ossClient
at org.springframework.boot.autoconfigure.condition.SpringBootCondition.matches(SpringBootCondition.java:60) ~[spring-boot-autoconfigure-2.3.7.RELEASE.jar:2.3.7.RELEASE]
at org.springframework.context.annotation.ConditionEvaluator.shouldSkip(ConditionEvaluator.java:108) ~[spring-context-5.2.12.RELEASE.jar:5.2.12.RELEASE]
Caused by: java.lang.IllegalStateException: @ConditionalOnMissingBean did not specify a bean using type, name or annotation and the


被折叠的 条评论
为什么被折叠?



