0

I am learning a Micronaut framework. My gradle.build file

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?

user3756506
  • 431
  • 1
  • 3
  • 12

1 Answers1

0

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. Unfortunately the RxJava team decided to allow a breaking change in a point release: https://github.com/ReactiveX/RxJava/pull/6263

Micronaut comes with RxJava2 2.2.6 which has the breaking change.

So the options are:

  1. Submit a request to the RxJava folks to revert the breaking change
  2. Submit a request to the Netflix folks to upgrade their version
  3. Try to force downgrade the RxJava2 version to 2.2.3. ext."rxjava2.version" = "2.2.3" for gradle for example
James Kleeh
  • 12,094
  • 5
  • 34
  • 61