Micronaut Ribbon Eureka依赖冲突

时间:2019-05-21 18:43:35

标签: java netflix-eureka micronaut netflix-ribbon

我正在学习Micronaut框架。 我的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"

}

但是程序启动失败并具有依赖性

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

我收到错误消息:

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无法与Eureka和Ribbon一起使用吗?

1 个答案:

答案 0 :(得分:0)

您发布的堆栈跟踪信息不是完整的堆栈跟踪信息,因为它没有显示错误的实际根本原因,因此无法说出是什么代码依赖于该方法

这似乎与RxJava2版本不兼容。不幸的是,RxJava团队决定允许在点发布中进行重大更改:https://github.com/ReactiveX/RxJava/pull/6263

Micronaut带有RxJava2 2.2.6,该版本具有重大变化。

因此,这些选项是:

  1. 向RxJava人员提交请求以还原重大更改
  2. 向Netflix员工提交升级其版本的请求
  3. 尝试强制将RxJava2版本降级到2.2.3。 ext."rxjava2.version" = "2.2.3"(例如gradle)