报错
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
进去后点击查找当前类所在位置
可以看到这个包依赖于spring-cloud-commons-3.1.1.jar
于是在https://javadoc.io/搜索,搜索条件如下
可以看到最新版本是3.1.3
点这个链接进去详情
进到这个页面ctrl+f
搜索LoadBalancerProperties
搜到后再点进去,搜索没有的包,发现是新版本有这个方法,旧版本没有。
解决方案
我使用的是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>