我正在学习 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 一起使用吗?
最佳答案
您发布的堆栈跟踪不是完整的堆栈跟踪,因为它没有显示错误的实际根本原因,因此不可能说出哪一段代码依赖于该方法
这看起来像是 RxJava2 版本不兼容。不幸的是,RxJava 团队决定允许在单点版本中进行重大更改:https://github.com/ReactiveX/RxJava/pull/6263
Micronaut 附带了 RxJava2 2.2.6,其中有重大变化。
所以选项是:
- 向 RxJava 人员提交请求以恢复重大更改
- 向 Netflix 人员提交升级版本的请求
- 尝试将 RxJava2 版本强制降级至 2.2.3。
ext."rxjava2.version"= "2.2.3"
例如 gradle
关于java - Micronaut 功能区 eureka 依赖冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56244587/