【解决】org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.choose(Ljava/lang/String……

Síntomas del problema:

Entorno de desarrollo: el proyecto SpringCloud local actualiza la versión SpringCloud, llama a la interfaz Feign y configura el equilibrio de carga a través de la cinta.

java.lang.AbstractMethodError: org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient.choose(Ljava/lang/String;Lorg/springframework/cloud/client/loadbalancer/Request;)Lorg/springframework/cloud/client/ServiceInstance;
	at org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient.execute(FeignBlockingLoadBalancerClient.java:88) ~[spring-cloud-openfeign-core-3.0.7.jar:3.0.7]
	at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:119) ~[feign-core-10.12.jar:na]
	at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:89) ~[feign-core-10.12.jar:na]
	at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:100) ~[feign-core-10.12.jar:na]
	at com.sun.proxy.$Proxy80.queryString(Unknown Source) ~[na:na]

Insertar descripción de la imagen aquí

Solución de problemas:

La razón principal es que el paquete jar entra en conflicto: la cinta de la que depende nacos y la cinta de springcloud tienen diferentes implementaciones del mismo método y son incompatibles.
Elimine la dependencia de nacos spring-cloud-starter-netflix-ribbon:
es esencialmente un conflicto de paquetes jar. La cinta de la que depende nacos y la cinta de springcloud tienen diferentes implementaciones del mismo método, lo que resulta en incompatibilidad.

Como arriba, descubrí en búsquedas en línea que debería ser causado por conflictos de paquetes jar, pero no introduje nacos. Abrí el análisis de dependencia y descubrí que eureka también introdujo diferentes versiones de paquetes relacionados. Eliminé las dependencias en conflicto y lo intenté nuevamente. :
Insertar descripción de la imagen aquí

Corrección de errores

Encuentre la dependencia eureka del archivo pom y excluya los paquetes relacionados con la cinta:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            <!--排除ribbon-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-netflex-ribbon</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

mvn se vuelve a compilar, el proyecto comienza de nuevo y el problema se resuelve

Supongo que te gusta

Origin blog.csdn.net/weixin_41674401/article/details/135171424
Recomendado
Clasificación