java - Micronaut 功能区 eureka 依赖冲突

标签 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 一起使用吗?

最佳答案

您发布的堆栈跟踪不是完整的堆栈跟踪,因为它没有显示错误的实际根本原因,因此不可能说出哪一段代码依赖于该方法

这看起来像是 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

关于java - Micronaut 功能区 eureka 依赖冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56244587/

相关文章:

java - 将图像插入 JTextPane 错误

java - noSuchMethodError setDefaultTransactionManager - HIBERNATE 缓存

java - HttpMessageNotReadableException : JSON parse error: Cannot construct instance

gradle - IntelliJ - Gradle - Kotlin - Micronaut - 更改文件不会在 "run"上重新生成类

java - 如何在 Micronaut 中使用@Parameter?

java - 已签名的 APK 具有不同的 Facebook key 哈希

java - 从命令行启动Spring Boot中的多个外部属性文件

docker - 如何在 Eureka Discovery 注册中心注册外部服务(非 MSA)

spring-boot - ZuulException : Forwarding error, 由 : java.net.SocketException 引起:管道损坏

java - 当我的响应类型是 ModelAndView 时,如何向客户端发送 cookie?