0
点赞
收藏
分享

微信扫一扫

BootstrapMethodError: java.lang.NoClassDefFoundError: reactor/netty/NettyPipeline$SendOptions

英乐 2022-03-15 阅读 65



源码分析NoClassDefFoundError=NettyPipeline.SendOptions


  • ​​业务需求​​
  • ​​报的异常:​​
  • ​​分析引用的点:​​
  • ​​解决办法:​​


业务需求

由于需要添加skywalking的支持,发现apm-spring-cloud-gateway-2.1.x-plugin-8.0.1.jar最高版本是2.1.x,所以需要把之前的依赖降级,因此引发的版本问题。

BootstrapMethodError: java.lang.NoClassDefFoundError: reactor/netty/NettyPipeline$SendOptions_java

报的异常:

java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: reactor/netty/NettyPipeline$SendOptions
at org.springframework.cloud.gateway.filter.NettyRoutingFilter.lambda$filter$3(NettyRoutingFilter.java:134) ~[spring-cloud-gateway-core-2.1.5.RELEASE.jar:2.1.5.RELEASE]
......
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_161]
Caused by: java.lang.NoClassDefFoundError: reactor/netty/NettyPipeline$SendOptions
... 34 common frames omitted

分析引用的点:



看看spring-cloud-gateway-core-2.1.5.RELEASE.jar中NettyRoutingFilter是如何使用NettyPipeline.SendOptions的。
BootstrapMethodError: java.lang.NoClassDefFoundError: reactor/netty/NettyPipeline$SendOptions_java_02



不同版本对比的发现
​在版本spring.boot.version是2.1.6.RELEASE 中显示的依赖版本是reactor-netty:​0.8.9.RELEASE在版本spring.boot.version是2.2.5.RELEASE 中显示的依赖版本是reactor-netty-​0.9.5.RELEASE​



下面来看这两个包中NoClassDefFoundError: reactor/netty/NettyPipeline$SendOptions的原因是:

BootstrapMethodError: java.lang.NoClassDefFoundError: reactor/netty/NettyPipeline$SendOptions_jar_03

解决办法:

如果确定要引用:​spring-cloud-gateway-core-2.1.5.RELEASE.jar​

相应的springboot包依赖需要引用:<spring.boot.version>​2.1.6.RELEASE​</spring.boot.version>

如果确定要引用:​spring-cloud-gateway-core-2.2.2.RELEASE.jar​

相应的springboot包依赖需要引用:<spring.boot.version>​2.2.5.RELEASE​</spring.boot.version>



举报

相关推荐

0 条评论