问题现象
在启动 Spring Cloud Hoxton.SR1 gateway 服务的时候无法启动,错误现象如下:
***************************
APPLICATION FAILED TO START
***************************
Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
org.springframework.cloud.gateway.config.GatewayAutoConfiguration$NettyConfiguration.gatewayHttpClient(GatewayAutoConfiguration.java:597)
The following method did not exist:
reactor.netty.resources.ConnectionProvider.elastic(Ljava/lang/String;Ljava/time/Duration;)Lreactor/netty/resources/ConnectionProvider;
The method's class, reactor.netty.resources.ConnectionProvider, is available from the following locations:
jar:file:/Volumes/soft/projects/5irm/gateway/target/gateway-0.0.1.jar!/BOOT-INF/lib/reactor-netty-0.9.3.RELEASE.jar!/reactor/netty/resources/ConnectionProvider.class
It was loaded from the following location:
jar:file:/Volumes/soft/projects/5irm/gateway/target/gateway-0.0.1.jar!/BOOT-INF/lib/reactor-netty-0.9.3.RELEASE.jar!/
Action:
Correct the classpath of your application so that it contains a single, compatible version of reactor.netty.resources.ConnectionProvider
在网上找了好久没有解决,最终在 CSDN 上找到一篇文章 《翻车!Spring Boot 2.2.3 不兼容 Spring Cloud Hoxton.SR1》才得以解决。
问题原因
参考《翻车!Spring Boot 2.2.3 不兼容 Spring Cloud Hoxton.SR1》。
解决方法
在pom文件中加入 reactor-netty 0.9.4.RELEASE的依赖,如下:
<dependency>
<groupId>io.projectreactor.netty</groupId>
<artifactId>reactor-netty</artifactId>
<version>0.9.4.RELEASE</version>
</dependency>