Spring Cloud 报错:NoSuchMethodError: .LoadBalancerProperties.isUseRawStatusCodeInResponseData()Z

Spring Wu 776 2022-06-12

报错

Caused by: java.lang.NoSuchMethodError: org.springframework.cloud.client.loadbalancer.LoadBalancerProperties.isUseRawStatusCodeInResponseData()Z
	at org.springframework.cloud.openfeign.loadbalancer.RetryableFeignBlockingLoadBalancerClient.lambda$execute$2(RetryableFeignBlockingLoadBalancerClient.java:169)
	at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:329)
	... 32 common frames omitted

寻找原因

根据报错提示,是找不到LoadBalancerProperties.isUseRawStatusCodeInResponseData()方法,idea 双击shift搜索LoadBalancerProperties

image-1655023732750

进去后点击查找当前类所在位置

image-1655023757684

可以看到这个包依赖于spring-cloud-commons-3.1.1.jar

于是在https://javadoc.io/搜索,搜索条件如下

image-1655024011274

可以看到最新版本是3.1.3

image-1655024055972

点这个链接进去详情

image-1655024106682

进到这个页面ctrl+f搜索LoadBalancerProperties

image-1655024118525

搜到后再点进去,搜索没有的包,发现是新版本有这个方法,旧版本没有。

image-1655024181342

解决方案

我使用的是spring-cloud-alibaba-dependencies,版本是2021.0.1.0,对应依赖的spring-cloud-commons包版本是3.1.1,更改此版本,重新在项目中引入:

<spring.cloud.alibaba.version>2021.0.1.0</spring.cloud.alibaba.version>
<dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-dependencies</artifactId>
            <version>${spring.cloud.alibaba.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
          <!-- nacos 服务发现与注册 -->
        <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-commons</artifactId>
          	<version>3.1.3</version>
        </dependency>
    <dependencies>
<dependencyManagement>