翻车!SpringBoot2.2.3不兼容SpringCloudHoxton.SR1

编程

翻车日志

***************************

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:/Users/lengleng/env/repository/io/projectreactor/netty/reactor-netty/0.9.3.RELEASE/reactor-netty-0.9.3.RELEASE.jar!/reactor/netty/resources/ConnectionProvider.class

It was loaded from the following location:

file:/Users/lengleng/env/repository/io/projectreactor/netty/reactor-netty/0.9.3.RELEASE/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

问题排查

如上日志涉及到 reactor-netty 依赖版本的问题

    +---------------------------+            +---------------------------+

| Spring Boot 2.2.3.RELEASE | | Spring Boot 2.2.2.RELEASE |

+-------------+-------------+ +-------------+-------------+

| |

+-----------------v----------------+ +-----------------v----------------+

|spring-boot-starter-reactor-netty | |spring-boot-starter-reactor-netty |

| 2.2.3.RELEASE | | 2.2.2.RELEASE |

+-----------------+----------------+ +-----------------+----------------+

| |

+-------+--------+ +-------+--------+

| reactor-netty | | reactor-netty |

| 0.9.3.RELEASE | | 0.9.2.RELEASE |

+----------------+ +----------------+

ConnectionProvider

0.9.3 未对以下版本兼容,去掉ConnectionProvider.elastic(Ljava/lang/String;Ljava/time/Duration;) ,多态出来 一个 maxLifeTime 的参数, 具体参考

reactor/reactor-netty#922

reactor/reactor-netty#924

	/**

* Create a {@link ConnectionProvider} to cache and grow on demand {@link Connection}.

* <p>An elastic {@link ConnectionProvider} will never wait before opening a new

* connection. The reuse window is limited but it cannot starve an undetermined volume

* of clients using it.

*

* @param name the channel pool map name

* @param maxIdleTime the {@link Duration} after which the channel will be closed when idle (resolution: ms),

* if {@code NULL} there is no max idle time

* @param maxLifeTime the {@link Duration} after which the channel will be closed (resolution: ms),

* if {@code NULL} there is no max life time

*

* @return a new {@link ConnectionProvider} to cache and grow on demand

* {@link Connection}

*/

static ConnectionProvider elastic(String name, @Nullable Duration maxIdleTime, @Nullable Duration maxLifeTime) {

...

}

解决方法

  • 全局使用 0.9.4 暂时是 快照版本,或者降级到 0.9.2 ,Spring Boot 2.2.3 未修改reactor 问题,降级是目前最好的选择。

<dependencymanagement>

<dependencies>

<dependency>

<groupid>io.projectreactor.netty</groupid>

<artifactid>reactor-netty</artifactid>

<version>0.9.2.RELEASE</version>

</dependency>

</dependencies>

</dependencymanagement>

> 项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注

</p>

以上是 翻车!SpringBoot2.2.3不兼容SpringCloudHoxton.SR1 的全部内容, 来源链接: utcz.com/z/512924.html

回到顶部