谷粒商城P62 Spring Cloud Alibaba整合 OSS 报错问题(成功解决)

文章目录

  • 一、依赖版本
  • 二、整合步骤
    • 2.1 视频 / 旧版本
    • 2.2 官网 / 新版本
  • 三、product测试
  • 四、额外补充
    • 4.1 renren-fast报错
    • 4.2 解决方案
      • 4.2.1 视频 / 旧版本
      • 4.2.2 官网 / 新版本

最近在学习谷粒商城,一直卡在P62,SpringCloud Alibaba整合OSS报错,零零散散花了几天晚上 终于解决,特此记录下。

一、依赖版本

项目使用的版本为:

  • SpringBoot版本:2.6.13
  • SpringCloud版本:2021.0.5
  • SpringCloud-Alibaba版本:2021.0.5.0

SpringBoot、SpringCloud、SpringCloud-Alibaba具体对应版本 可见官网, SpringBoot、SpringCloud、SpringCloudAlibaba版本对应关系。

二、整合步骤

视频中所添加的依赖与官网有所不同,主要区别在于:

1)引入的依赖不同

<!--视频/旧版本-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alicloud-oss</artifactId>
</dependency><!--官网/新版本-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>aliyun-oss-spring-boot-starter</artifactId>
</dependency>

2)application.yml文件配置不同

#视频/旧版本
spring:cloud:alicloud:access-key: yourkeysecret-key: yourkeyoss:endpoint: ....#官网/新版本
alibaba:cloud:access-key: yourkeysecret-key: yourkeyoss:endpoint: ....

下面分两种方式来介绍。

2.1 视频 / 旧版本

1)和视频引入的包相同,在common模块的pom.xml引入下面依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alicloud-oss</artifactId><version>2.2.0.RELEASE</version>
</dependency>

注意要带上<version>,否则报错:

java.lang.NoClassDefFoundError: com/baomidou/mybatisplus/extension/service/IService

2)在gulimall-product模块的application.yml文件进行如下配置

spring:cloud:alicloud:access-key: L****psecret-key: L****doss:endpoint: oss-cn-beijing.aliyuncs.comutil:enabled: false

重点注意:需要配置spring.cloud.util:enabled为false,否则报错

java.lang.IllegalStateException: Failed to load ApplicationContext

Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘nacosProperties’: Unsatisfied dependency expressed through field ‘inetIPv6Utils’; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘inetIPv6Utils’ defined in class path resource [com/alibaba/cloud/nacos/util/UtilIPv6AutoConfiguration.class]: Unsatisfied dependency expressed through method ‘inetIPv6Utils’ parameter 0; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type ‘org.springframework.cloud.commons.util.InetUtilsProperties’ available: expected single matching bean but found 2: spring.cloud.inetutils-org.springframework.cloud.commons.util.InetUtilsProperties,inetUtilsProperties

在这里插入图片描述

2.2 官网 / 新版本

1)用aliyun-spring-boot官网示例的依赖,在common模块的pom.xml引入下面依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>aliyun-oss-spring-boot-starter</artifactId><!-- 版本号不能少,否则报错 --><version>1.0.0</version>
</dependency>
<!-- 必须导入新的依赖,否则会报错 -->
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.7</version>
</dependency>

注意:

A.aliyun-oss-spring-boot-starter带上版本号,否则报错

Caused by: java.lang.ClassNotFoundException: com.baomidou.mybatisplus.extension.service.IService

B.必须多引入 aliyun-java-sdk-oss,否则报错

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘aliCloudEdasSdk’ defined in class path resource

C.必须多引入 aliyun-sdk-oss,否则报错

程序包com.aliyun.oss不存在

2)在gulimall-product模块的application.yml文件进行如下配置(注意:和视频的配置不同,注意区分

# 阿里云OSS配置暂时先放在此处(后续会放在Nacos配置中心)
alibaba:cloud:access-key: L****psecret-key: L****doss:endpoint: oss-cn-beijing.aliyuncs.com

在这里插入图片描述

注意:如果还是报错Error creating bean with name ‘ossClient’,记得注释掉product模块 pom.xml文件中添加的aliyun-sdk-oss依赖,因为product模块自带的oss配置与common模块引入的oss依赖版本冲突。

三、product测试

@RunWith(SpringRunner.class)
@SpringBootTest
class JewelrymallProductApplicationTests {//用Autowired虽然会标红,但是可以运行起来。也可用@Resource@Autowiredprivate OSSClient ossClient;@Testpublic void testUpload() throws Exception {String filePath= "C:\\Users\\28687\\Desktop\\test0.png";try {InputStream inputStream = new FileInputStream(filePath);ossClient.putObject("jewelrymall-wj", "test-0.png", inputStream);System.out.println("上传完成...");}finally {if (ossClient != null) {ossClient.shutdown();}}}
}

如果还是报错Error creating bean with name ‘ossClient’,记得注释掉product模块 pom.xml文件中添加的aliyun-sdk-oss依赖,因为product模块自带的oss配置与common模块引入的oss依赖版本冲突。

四、额外补充

4.1 renren-fast报错

按照以上方式,product服务的 testUpload()方法能正常运行,但renren-fast的RenrenApplication会报错

在这里插入图片描述

因为版本冲突。renren-fast的pom.xml文件中本就自带有aliyun-sdk-oss依赖(版本为2.8.3),而common pom.xml文件中的spring-cloud-starter-alicloud-oss / aliyun-oss-spring-boot-starter 也包含aliyun-sdk-oss依赖(版本为3.1.0),有冲突。

如果注释掉renren-fast pom.xml文件中的aliyun-sdk-oss,使用common pom.xml文件中的spring-cloud-starter-alicloud-oss / aliyun-oss-spring-boot-starter ,会报错。

在这里插入图片描述

大概是renren-fast的SpringBoot版本为2.6.6,与3.1.0版本的aliyun-sdk-oss不兼容导致的(上述2.1、2.2引入 的aliyun-sdk-oss版本为3.1.0),因此renren-fast 还是得与原来2.8.3版本的aliyun-sdk-oss配合使用。

此时需要引入dependencyManagement将冲突的jar包管理起来,其他product等模块继承common模块oss的版本,renren-fast使用自己携带的版本。

4.2 解决方案

和上文第二部分类似,我们分别介绍两种整合方式对应的解决方案。

4.2.1 视频 / 旧版本

1)和视频引入的包相同,在common模块的pom.xml引入下面依赖

<dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alicloud-oss</artifactId><version>2.2.0.RELEASE</version></dependency></dependencies>
</dependencyManagement>

renren-fast pom.xml中aliyun-sdk-oss保留

<properties><aliyun.oss.version>2.8.3</aliyun.oss.version>
</properties><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>${aliyun.oss.version}</version>
</dependency>

guilmall-product模块的pom.xml文件引入spring-cloud-starter-alicloud-oss

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alicloud-oss</artifactId><version>2.2.0.RELEASE</version>
</dependency>

2)在gulimall-product模块的application.yml文件进行如下配置

spring:cloud:alicloud:access-key: L****psecret-key: L****doss:endpoint: oss-cn-beijing.aliyuncs.comutil:enabled: false

使用mvn clean install -U,使用所有依赖的最新版本【清除旧的构建产物;构建项目并将打包的项目安装到本地参考,供其他项目作为依赖;检查并更新所有依赖的最新版本(包括 SNAPSHOT 版本)】。

在这里插入图片描述

重新运行,发现 renren-fast的RenrenApplication、product服务的 testUpload()方法都能正常运行

4.2.2 官网 / 新版本

1)用aliyun-spring-boot官网示例的依赖,在common模块的pom.xml引入下面依赖

<dependencyManagement><dependencies><dependency><groupId>com.alibaba.cloud</groupId><artifactId>aliyun-oss-spring-boot-starter</artifactId><!-- 版本号不能少,否则报错 --><version>1.0.0</version></dependency><!-- 必须导入新的依赖,否则会报错 --><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.7</version></dependency></dependencies>
</dependencyManagement>

renren-fast pom.xml中aliyun-sdk-oss保留

<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>${aliyun.oss.version}</version>
</dependency>

guilmall-product模块的pom.xml文件引入

<dependencies><!-- 其他依赖 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>aliyun-oss-spring-boot-starter</artifactId><version>1.0.0</version></dependency><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.7</version></dependency>
</dependencies>

2)在gulimall-product模块的application.yml文件进行如下配置(注意:和视频的配置不同,注意区分

# 阿里云OSS配置暂时先放在此处(后续会放在Nacos配置中心)
alibaba:cloud:access-key: L****psecret-key: L****doss:endpoint: oss-cn-beijing.aliyuncs.com

在这里插入图片描述

参考 谷粒商城 P62 OSS 整合问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/861834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

word图题表题公式按照章节编号(不用题注)

预期效果&#xff1a; 其中3表示第三章&#xff0c;4表示第3章里的第4个图。标题、公式编号也是类似的。 为了达到这种按照章节编号的效果&#xff0c;原本可以用插入题注里的“包含章节编号” 但实际情况是&#xff0c;这不仅需要一级标题的序号是用“开始->多级列表”自动…

SQL注入漏洞—SQL注入简介与原理

一、SQL注入基础 1.1 什么是SQL注入漏洞 SQL注入漏洞从1998年圣诞节大火以来长盛不衰&#xff0c;虽然开发人员想出各种方法对他进行围追堵截&#xff0c;却始终无法将其赶尽杀绝&#xff0c;SQL注入的根本原因就是将SQL代码插入或添加到应用&#xff08;用户&#xff09;的输…

Transformer教程之什么是Transformer

在过去的几年里&#xff0c;Transformer 模型已经成为了自然语言处理&#xff08;NLP&#xff09;领域的主流技术。无论是机器翻译、文本生成还是语音识别&#xff0c;Transformer 都表现出了非凡的性能。那么&#xff0c;什么是 Transformer&#xff1f;它是如何工作的&#x…

WPF----进度条ProgressBar(渐变色)

ProgressBar 是一种用于指示进程或任务的进度的控件&#xff0c;通常在图形用户界面&#xff08;GUI&#xff09;中使用。它提供了一种视觉反馈&#xff0c;显示任务的完成程度&#xff0c;帮助用户了解任务的进展情况。 基本特性 Minimum 和 Maximum 属性&#xff1a; 这些属…

猫也有自动厕所上了吗?自费分享好用的智能猫砂盆,看完不亏。

还有人在用普通猫砂盘吗&#xff1f;之前我也是用的普通猫砂盘&#xff0c;但我发现只要我在上班时间&#xff0c;我就无法顾忌到小猫的便便&#xff0c;但又不想回家就闻到一股臭味&#xff0c;更何况现在夏天也快到了&#xff0c;便便残留一会就会发酵发臭&#xff0c;导致生…

求出某空间曲面下的体积

求出某空间曲面下的体积 flyfish 用小长方体的体积和来逼近该体积 import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation# 定义函数 f(x, y) def f(x, y):return np.sin(np.pi * x) * np.sin(np.pi * y)# 创建网格 x np.linspac…

postgre事务id用完后,如何解决这个问题

在PG中事务年龄不能超过2^31 &#xff08;2的31次方2,147,483,648&#xff09;&#xff0c;如果超过了&#xff0c;这条数据就会丢失。 PG中不允许这种情况出现&#xff0c;当事务的年龄离2^31还有1千万的时候&#xff0c;数据库的日志中就会 有如下告警&#xff1a; warning:…

安全感爆棚,锁定六氟化硫SF6气体泄漏报警监测系统

一、概述 六氟化硫SF6气体已有百年历史&#xff0c;它是法国两位化学家Moissan和Lebeau于1900年合成的人造惰性气体&#xff0c; 1947年提供商用。当前SF6气体主要用于电力工业中。化学性质稳定。微溶于水、醇及醚&#xff0c;可溶于氢氧化钾。不与氢氧化钠、液氨、盐酸及水起…

常见的Java开发难题包含解决办法内存泄漏异常处理代码质量和维护

常见的Java开发难题包含解决办法内存泄漏异常处理代码质量和维护 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中……&#xff09; 4、牛逼哄哄的 I…

实践案例:使用Jetpack Navigation创建一个新闻应用

在这个实践案例中&#xff0c;我们将使用Jetpack Navigation创建一个简单的新闻应用。这个应用将包含以下功能&#xff1a; 新闻列表页面&#xff1a;显示一组新闻文章。新闻详情页面&#xff1a;显示选定新闻文章的详细信息。用户资料页面&#xff1a;显示用户的资料信息。 …

从爬取到分析:Faraday爬取Amazon音频后的数据处理

什么是Faraday&#xff1f; Faraday是一个简单、灵活的高级爬虫框架&#xff0c;支持多种编程语言。它提供了一套丰富的API&#xff0c;允许开发者快速构建复杂的爬虫应用。Faraday的主要特点包括&#xff1a; 模块化设计&#xff1a;易于扩展和自定义。多语言支持&#xff1…

Vite 动态导入警告问题解决方案

如上图我要实现从后台获取权限菜单并动态导入进行渲染 但由于 vite 暂时不支持这种导入方式 图中也给出了提示 本人也是这么去做了 但并没什么卵用 后来参考了 vite 的 import.meta.glob 这种方式 我在处理菜单权限控制的菜单里进行了如下操作&#xff1a; …

【网络架构】lvs集群

目录 一、集群与分布式 1.1 集群介绍 1.2 分布式系统 1.3 集群设计原则 二、LVS 2.1 lvs工作原理 2.2 lvs集群体系架构 ​编辑 2.3 lvs功能及组织架构 2.4 lvs集群类型中术语 三、LVS工作模式和命令 3.1 lvs集群的工作模式 3.1.1 lvs的nat模式 3.1.2 lvs的dr模式 …

从此以后,将硬件接入大语言模型(LLM)将变得如此简单~

一、前言 本文中将使用ESP-AI开源库来实现将硬件接入AI&#xff0c;整个过程将非常的轻松~ 什么是ESP-AI? 为你的开发板提供全套的AI对话方案&#xff0c;包括但不限于 ESP32 系列开发板的 IATLLMTTS 集成方案。 交流群 QQ 交流群: 854445223 技术栈 ESP-AI 分为了服务端和…

001 ElasticSearch7.x 、IK分词器、Kibana 环境搭建、安装

ElasticSearch 7.x 文章目录 ElasticSearch 7.x1.windows环境安装1.ik分词器安装2.es启动3.Kibana启动 2.Linux环境安装3.分词器1.分词测试2.ES中默认分词器3.IK分词器4.自定义分词器 1.windows环境安装 es下载地址&#xff1a; https://www.elastic.co/cn/downloads/past-rel…

超声波清洗机洗眼镜效果好吗?四大主流超声波清洗机终极大测评

清洗眼镜是日常生活中一件很麻烦的事情&#xff0c;常规的清洗方式无法完全清洁镜片上的细菌和污垢&#xff0c;而且容易造成划痕。也有很多朋友为了节省时间&#xff0c;每次清洗眼镜都用衣服衣角随便擦拭擦拭就完事了&#xff0c;但其实这样做往往会很伤眼镜&#xff0c;缩短…

矩阵新玩法,云微客AI矩阵系统开启新营销大门

在激烈的市场竞争中&#xff0c;商家企业们都在追求更加高效的营销方式&#xff0c;在如今流量至上的时代&#xff0c;短视频凭借其魅力&#xff0c;成为了众多企业吸引流量、获客引流的核心营销途径。而想要挤进短视频流量圈的你&#xff0c;是否经常听到矩阵这个词呢&#xf…

远程工具的使用

远程连接工具的作用&#xff0c;通过远程连接到服务器上&#xff0c;方便操作&#xff01; 1.常见的远程连接工具 XShell&#xff1a;这是一款Windows平台下的SSH客户端软件&#xff0c;支持SSH1、SSH2、SFTP、TELNET、RLOGIN等多种协议&#xff0c;功能丰富&#xff0c;包…

【MotionCap】conda 链接缺失的cuda库

conda 安装的环境不知道为啥python 环境里的 一些cuda库是空的要自己链接过去。ln 前面是已有的,后面是要新创建的 ln -s <path to the file/folder to be linked> cuda 有安装 libcublas 已经在cuda中 (base) zhangbin@ubuntu-server:~/miniconda3/envs/ai-mocap/lib/…

智能语音新革命:有道与Azure的API服务对决

在当今技术飞速发展的时代&#xff0c;API&#xff08;应用程序接口&#xff09;已经成为连接不同软件和服务的桥梁。无论是开发移动应用、构建网页服务&#xff0c;还是实现物联网设备的互联互通&#xff0c;API都在其中扮演着不可或缺的角色。随着市场上各种API接口的涌现&am…