人人开源(renren-fast)项目注册进nacos

时间:2022 - 11 -15

记一次在学习谷粒商城项目时遇到的版本冲突问题

遇到的问题:找不到类定义

org.springframework.cloud.context.properties包下的
ConfigurationPropertiesBeans类报错:
Caused by: java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
	at java.base/java.lang.Class.getDeclaredMethods0(Native Method)
	at java.base/java.lang.Class.privateGetDeclaredMethods(Class.java:3166)
	at java.base/java.lang.Class.getDeclaredMethods(Class.java:2309)
	at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:467)
	... 37 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.context.properties.ConfigurationBeanFactoryMetadata
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
	... 41 common frames omitted

分析:

1:查看

ConfigurationPropertiesBeans存在相同名类共有三个

2:去掉 nacos服务注册中心的依赖则不报错,此时存在

ConfigurationPropertiesBeans类共有两个(其他项目存在一个版本2.2.0RELEASE,人人开源项目存在3.1.5版本)

3:依赖冲突,在nacos的依赖中去掉依赖:

spring-cloud-context

4:nacos本身也需要去掉依赖

spring-cloud-starter-netflix-ribbon

解决方案:修改pom文件

		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
			<version>2.2.0.RELEASE</version>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.cloud</groupId>
					<artifactId>spring-cloud-context</artifactId>
				</exclusion>
					<exclusion>
						<groupId>org.springframework.cloud</groupId>
						<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
					</exclusion>
			</exclusions>
		</dependency>

这是一个用于生成并启动Nacos容器的Docker命令。命令如下: ``` docker run -d -p 8848:8848 -e MODE=standalone -e PREFER_HOST_MODE=hostname -v /root/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties -v /root/nacos/logs:/home/nacos/logs --restart always --name nacos nacos/nacos-server ``` 解释一下这个命令的各个部分: - `docker run`:运行一个新的容器。 - `-d`:以后台守护程模式运行容器。 - `-p 8848:8848`:将主机的8848端口映射到容器的8848端口,这样可以通过主机的8848端口访问Nacos服务。 - `-e MODE=standalone`:设置Nacos的运行模式为standalone,即单机模式。 - `-e PREFER_HOST_MODE=hostname`:设置Nacos的主机模式为hostname,这样在集群环境下,Nacos将使用主机名作为节点标识。 - `-v /root/nacos/init.d/custom.properties:/home/nacos/init.d/custom.properties`:将主机上的`custom.properties`文件挂载到容器内的相应位置,可以根据需要行自定义配置。 - `-v /root/nacos/logs:/home/nacos/logs`:将主机上的日志目录挂载到容器内的相应位置,方便查看和管理日志文件。 - `--restart always`:设置容器始终自动重启。 - `--name nacos`:给容器指定一个名称为nacos。 - `nacos/nacos-server`:使用Nacos官方提供的镜像。 执行此命令后,Docker将下载并运行Nacos镜像,并将主机的8848端口映射到容器的8848端口。你可以通过访问`http://localhost:8848/nacos`来验证Nacos是否成功启动。 请注意,如果你已经有一个名为nacos的容器运行,你需要先停止并删除它,然后再运行上述命令。可以使用以下命令停止和删除容器: ``` docker stop nacos docker rm nacos ``` 这样就可以生成并启动Nacos容器了。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值