Spring Cloud Hoxton.SR9 gateway 与reactor-netty 0.9.0.RELEASE不兼容
启动Spring Cloud Gateway项目时报错
运行环境
Spring Boot 版本为:2.2.0.RELEASE
Spring Cloud版本为:Hoxton.SR9
Spring Cloud Alibaba版本为:2.2.1.RELEASE
***************************
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:675)
The following method did not exist:
'reactor.netty.resources.ConnectionProvider reactor.netty.resources.ConnectionProvider.elastic(java.lang.String, java.time.Duration, java.time.Duration)'
The method's class, reactor.netty.resources.ConnectionProvider, is available from the following locations:
jar:file:/E:/apache-maven-3.6.3/repo/io/projectreactor/netty/reactor-netty/0.9.0.RELEASE/reactor-netty-0.9.0.RELEASE.jar!/reactor/netty/resources/ConnectionProvider.class
It was loaded from the following location:
file:/E:/apache-maven-3.6.3/repo/io/projectreactor/netty/reactor-netty/0.9.0.RELEASE/reactor-netty-0.9.0.RELEASE.jar
Action:
Correct the classpath of your application so that it contains a single, compatible version of reactor.netty.resources.ConnectionProvider
Process finished with exit code 1
尝试把 reactor-netty 版本升级到 0.9.4.RELEASE
结果又出现 spring-webflux 版本不兼容
***************************
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.reactorNettyWebSocketClient(GatewayAutoConfiguration.java:803)
The following method did not exist:
'void org.springframework.web.reactive.socket.client.ReactorNettyWebSocketClient.setHandlePing(boolean)'
The method's class, org.springframework.web.reactive.socket.client.ReactorNettyWebSocketClient, is available from the following locations:
jar:file:/E:/apache-maven-3.6.3/repo/org/springframework/spring-webflux/5.2.0.RELEASE/spring-webflux-5.2.0.RELEASE.jar!/org/springframework/web/reactive/socket/client/ReactorNettyWebSocketClient.class
It was loaded from the following location:
file:/E:/apache-maven-3.6.3/repo/org/springframework/spring-webflux/5.2.0.RELEASE/spring-webflux-5.2.0.RELEASE.jar
Action:
Correct the classpath of your application so that it contains a single, compatible version of org.springframework.web.reactive.socket.client.ReactorNettyWebSocketClient
Process finished with exit code 1
还原最初版本,最后把 Spring Cloud 版本降级到Hoxton.SR1,运行成功,结果出现新坑,Nacos又出现版本不兼容问题,没办法最后找到 Spring Cloud Alibaba 官方推荐配置,修改Spring Boot、Spring Cloud、Spring Cloud Alibaba 版本,运行成功
Spring Boot 版本:2.3.2.RELEASE
Spring Cloud 版本:Hoxton.SR8
Spring Cloud Alibaba 版本:2.2.5.RELEASE
附上 Spring Cloud Alibaba 官方推荐版本地址
推荐版本