简体   繁体   English

Micronaut ribbon eureka依赖冲突

[英]Micronaut ribbon eureka dependency conflict

I am learning a Micronaut framework. 我正在学习Micronaut框架。 My gradle.build file 我的gradle.build文件

dependencies {
annotationProcessor "io.micronaut:micronaut-inject-java"
annotationProcessor "io.micronaut:micronaut-validation"
compile "io.micronaut:micronaut-http-client"
compile "io.micronaut:micronaut-inject"
compile "io.micronaut:micronaut-validation"
compile "io.micronaut:micronaut-runtime"
compile "io.micronaut:micronaut-http-server-netty"
compile "javax.annotation:javax.annotation-api"
runtime "ch.qos.logback:logback-classic:1.2.3"
runtime "io.micronaut:micronaut-discovery-client"
testAnnotationProcessor "io.micronaut:micronaut-inject-java"
testCompile "org.junit.jupiter:junit-jupiter-api"
testCompile "io.micronaut.test:micronaut-test-junit5"
testRuntime "org.junit.jupiter:junit-jupiter-engine"

} }

But program startup fails with dependency 但是程序启动因依赖而失败

compile "io.micronaut.configuration:micronaut-netflix-ribbon"

I get error: 我收到错误:

21:39:30.792 [main] ERROR io.micronaut.runtime.Micronaut - Error starting Micronaut server: Unable to start Micronaut server on port: 8090
io.micronaut.http.server.exceptions.ServerStartupException: Unable to start Micronaut server on port: 8090
    at io.micronaut.http.server.netty.NettyHttpServer.bindServerToHost(NettyHttpServer.java:438)
    at io.micronaut.http.server.netty.NettyHttpServer.start(NettyHttpServer.java:310)
    at io.micronaut.http.server.netty.NettyHttpServer.start(NettyHttpServer.java:95)
    at io.micronaut.runtime.Micronaut.lambda$start$2(Micronaut.java:75)
    at java.base/java.util.Optional.ifPresent(Optional.java:183)
    at io.micronaut.runtime.Micronaut.start(Micronaut.java:73)
    at io.micronaut.runtime.Micronaut.run(Micronaut.java:288)
    at io.micronaut.runtime.Micronaut.run(Micronaut.java:274)
    at dev.ivanov.Application.main(Application.java:8)
Caused by: java.lang.NoSuchMethodError: io.reactivex.internal.subscriptions.SubscriptionHelper.isCancelled(Lorg/reactivestreams/Subscription;)Z

Micronaut can't work with Eureka and Ribbon together? Micronaut无法与Eureka和Ribbon一起使用?

Your stacktrace you posted is not the full stacktrace as it does not show the actual root cause of the error so it's impossible to say what piece of code is relying on the method 您发布的堆栈跟踪不是完整的堆栈跟踪,因为它没有显示错误的实际根本原因,因此无法说出哪些代码依赖于该方法

This looks like an incompatibility of RxJava2 versions. 这看起来像是RxJava2版本的不兼容性。 Unfortunately the RxJava team decided to allow a breaking change in a point release: https://github.com/ReactiveX/RxJava/pull/6263 不幸的是,RxJava团队决定允许在点发布中进行重大更改: https//github.com/ReactiveX/RxJava/pull/6263

Micronaut comes with RxJava2 2.2.6 which has the breaking change. Micronaut附带RxJava2 2.2.6,它有突破性的变化。

So the options are: 所以选项是:

  1. Submit a request to the RxJava folks to revert the breaking change 向RxJava人员提交请求以恢复重大变更
  2. Submit a request to the Netflix folks to upgrade their version 向Netflix人员提交请求以升级其版本
  3. Try to force downgrade the RxJava2 version to 2.2.3. 尝试强制将RxJava2版本降级到2.2.3。 ext."rxjava2.version" = "2.2.3" for gradle for example 例如,对于gradle,例如ext."rxjava2.version" = "2.2.3"

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM