java.lang.AbstractMethodError: Receiver class org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient does not define or inherit an implementation of the resolved method 'abstract org.springframework.cloud.client.ServiceInstance choose(java.lang.String, org.springframework.cloud.client.loadbalancer.Request)' of interface org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser.
创建项目的时候用的是spring Initializr 方式创建的openfeign项目,使用nacos做为注册中心,当远程调用的时候提示以上错误。
研究了很长时间才发现没有loadbalanc,虽然导入了spring-cloud-loadbalancer,但是nacos中的ribbon会造成loadbalanc包失效
在common的pom.xml文件中加入以下代码,排除nacos中的ribbon就可以解决了
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
本文介绍了一种解决Spring Cloud项目中出现的AbstractMethodError的方法。该错误发生在使用Nacos作为服务注册中心并尝试进行远程调用时。通过排除Nacos中的Ribbon依赖并引入特定版本的spring-cloud-loadbalancer来修复此问题。
2511

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



