Skip to content

Unable to initialize mediator without an Reactive Streams Operators in the classpath #1495

@matzew

Description

@matzew

Working on an application that reads Apache Kafka messages:

package net.wessendorf.knative;

import io.smallrye.reactive.messaging.kafka.KafkaMessage;

import org.eclipse.microprofile.reactive.messaging.Incoming;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.enterprise.context.ApplicationScoped;
import java.io.IOException;
import java.util.concurrent.CompletionStage;

@ApplicationScoped
public class KafkaEventConsumer{

    private static final Logger LOG = LoggerFactory.getLogger(KafkaEventConsumer.class);

    @Incoming("meters")
    public CompletionStage<Void> onMessage(KafkaMessage<String, String> message) throws IOException {

        LOG.info("Kafka message with value = {} arrived", message.getPayload());
        return message.ack();
    }

}

and in DEV MODE I am able to get this running and I see messages flying in.

However, when doing native image build, and starting the runner, I do get this error:

2019-03-14 18:08:43,122 ERROR [io.sma.rea.mes.ext.MediatorManager] (main) Unable to initialize mediator: net.wessendorf.knative.KafkaEventConsumer#onMessage: java.lang.IllegalStateException: No ReactiveStreamsFactory implementation found!
	at org.eclipse.microprofile.reactive.streams.operators.spi.ReactiveStreamsFactoryResolver.instance(ReactiveStreamsFactoryResolver.java:64)
	at org.eclipse.microprofile.reactive.streams.operators.ReactiveStreams.builder(ReactiveStreams.java:152)
	at io.smallrye.reactive.messaging.SubscriberMediator.processMethodReturningACompletionStage(SubscriberMediator.java:147)
	at io.smallrye.reactive.messaging.SubscriberMediator.initialize(SubscriberMediator.java:53)
	at io.smallrye.reactive.messaging.extension.MediatorManager.lambda$null$5(MediatorManager.java:143)
	at java.util.ArrayList.forEach(ArrayList.java:1257)
	at io.smallrye.reactive.messaging.extension.MediatorManager.lambda$initializeAndRun$6(MediatorManager.java:125)
	at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656)
	at java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:669)
	at java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:1997)
	at io.smallrye.reactive.messaging.extension.MediatorManager.initializeAndRun(MediatorManager.java:120)
	at io.smallrye.reactive.messaging.extension.MediatorManager_ClientProxy.initializeAndRun(Unknown Source)
	at io.quarkus.smallrye.reactivemessaging.runtime.SmallRyeReactiveMessagingLifecycle.onApplicationStart(SmallRyeReactiveMessagingLifecycle.java:20)
	at io.quarkus.smallrye.reactivemessaging.runtime.SmallRyeReactiveMessagingLifecycle_Observer_onApplicationStart_4e8937813d9e8faff65c3c07f88fa96615b70e70.notify(Unknown Source)
	at io.quarkus.arc.EventImpl$Notifier.notify(EventImpl.java:226)
	at io.quarkus.arc.EventImpl.fire(EventImpl.java:85)
	at io.quarkus.arc.runtime.LifecycleEventRunner.fireStartupEvent(LifecycleEventRunner.java:39)
	at io.quarkus.arc.runtime.ArcDeploymentTemplate.handleLifecycleEvents(ArcDeploymentTemplate.java:106)
	at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent4.deploy(Unknown Source)
	at io.quarkus.runner.ApplicationImpl1.doStart(Unknown Source)
	at io.quarkus.runtime.Application.start(Application.java:93)
	at io.quarkus.runtime.Application.run(Application.java:198)
	at io.quarkus.runner.GeneratedMain.main(Unknown Source)

2019-03-14 18:08:43,122 INFO  [io.sma.rea.mes.ext.MediatorManager] (main) Connecting mediators
2019-03-14 18:08:43,122 INFO  [io.sma.rea.mes.ext.MediatorManager] (main) Attempt to resolve net.wessendorf.knative.KafkaEventConsumer#onMessage
2019-03-14 18:08:43,123 INFO  [io.sma.rea.mes.ext.MediatorManager] (main) Connecting net.wessendorf.knative.KafkaEventConsumer#onMessage to `meters` (io.reactivex.internal.operators.flowable.FlowableMap@7f3cfc2888a8)
java.lang.RuntimeException: java.lang.NullPointerException
	at io.quarkus.smallrye.reactivemessaging.runtime.SmallRyeReactiveMessagingLifecycle.onApplicationStart(SmallRyeReactiveMessagingLifecycle.java:24)
	at io.quarkus.smallrye.reactivemessaging.runtime.SmallRyeReactiveMessagingLifecycle_Observer_onApplicationStart_4e8937813d9e8faff65c3c07f88fa96615b70e70.notify(Unknown Source)
	at io.quarkus.arc.EventImpl$Notifier.notify(EventImpl.java:226)
	at io.quarkus.arc.EventImpl.fire(EventImpl.java:85)
	at io.quarkus.arc.runtime.LifecycleEventRunner.fireStartupEvent(LifecycleEventRunner.java:39)
	at io.quarkus.arc.runtime.ArcDeploymentTemplate.handleLifecycleEvents(ArcDeploymentTemplate.java:106)
	at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent4.deploy(Unknown Source)
	at io.quarkus.runner.ApplicationImpl1.doStart(Unknown Source)
	at io.quarkus.runtime.Application.start(Application.java:93)
	at io.quarkus.runtime.Application.run(Application.java:198)
	at io.quarkus.runner.GeneratedMain.main(Unknown Source)
Caused by: java.lang.NullPointerException
	at io.smallrye.reactive.messaging.SubscriberMediator$1.onSubscribe(SubscriberMediator.java:92)
	at io.reactivex.internal.subscribers.StrictSubscriber.onSubscribe(StrictSubscriber.java:85)
	at io.reactivex.internal.subscribers.BasicFuseableSubscriber.onSubscribe(BasicFuseableSubscriber.java:67)
	at io.reactivex.internal.operators.flowable.FlowableRetryWhen.subscribeActual(FlowableRetryWhen.java:58)
	at io.reactivex.Flowable.subscribe(Flowable.java:14805)
	at io.reactivex.internal.operators.flowable.FlowableMap.subscribeActual(FlowableMap.java:37)
	at io.reactivex.Flowable.subscribe(Flowable.java:14805)
	at io.reactivex.Flowable.subscribe(Flowable.java:14755)
	at io.smallrye.reactive.messaging.SubscriberMediator.run(SubscriberMediator.java:113)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at io.smallrye.reactive.messaging.extension.MediatorManager.weaving(MediatorManager.java:229)
	at io.smallrye.reactive.messaging.extension.MediatorManager.lambda$initializeAndRun$6(MediatorManager.java:169)
	at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656)
	at java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:669)
	at java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:1997)
	at io.smallrye.reactive.messaging.extension.MediatorManager.initializeAndRun(MediatorManager.java:120)
	at io.smallrye.reactive.messaging.extension.MediatorManager_ClientProxy.initializeAndRun(Unknown Source)
	at io.quarkus.smallrye.reactivemessaging.runtime.SmallRyeReactiveMessagingLifecycle.onApplicationStart(SmallRyeReactiveMessagingLifecycle.java:20)
	... 10 more
2019-03-14 18:08:43,123 INFO  [io.sma.rea.mes.ext.MediatorManager] (main) Cancel subscriptions
Exception in thread "main" java.lang.RuntimeException: Failed to start quarkus
	at io.quarkus.runner.ApplicationImpl1.doStart(Unknown Source)
	at io.quarkus.runtime.Application.start(Application.java:93)
	at io.quarkus.runtime.Application.run(Application.java:198)
	at io.quarkus.runner.GeneratedMain.main(Unknown Source)
Caused by: java.lang.RuntimeException: java.lang.NullPointerException
	at io.quarkus.smallrye.reactivemessaging.runtime.SmallRyeReactiveMessagingLifecycle.onApplicationStart(SmallRyeReactiveMessagingLifecycle.java:24)
	at io.quarkus.smallrye.reactivemessaging.runtime.SmallRyeReactiveMessagingLifecycle_Observer_onApplicationStart_4e8937813d9e8faff65c3c07f88fa96615b70e70.notify(Unknown Source)
	at io.quarkus.arc.EventImpl$Notifier.notify(EventImpl.java:226)
	at io.quarkus.arc.EventImpl.fire(EventImpl.java:85)
	at io.quarkus.arc.runtime.LifecycleEventRunner.fireStartupEvent(LifecycleEventRunner.java:39)
	at io.quarkus.arc.runtime.ArcDeploymentTemplate.handleLifecycleEvents(ArcDeploymentTemplate.java:106)
	at io.quarkus.deployment.steps.LifecycleEventsBuildStep$startupEvent4.deploy(Unknown Source)
	... 4 more
Caused by: java.lang.NullPointerException
	at io.smallrye.reactive.messaging.SubscriberMediator$1.onSubscribe(SubscriberMediator.java:92)
	at io.reactivex.internal.subscribers.StrictSubscriber.onSubscribe(StrictSubscriber.java:85)
	at io.reactivex.internal.subscribers.BasicFuseableSubscriber.onSubscribe(BasicFuseableSubscriber.java:67)
	at io.reactivex.internal.operators.flowable.FlowableRetryWhen.subscribeActual(FlowableRetryWhen.java:58)
	at io.reactivex.Flowable.subscribe(Flowable.java:14805)
	at io.reactivex.internal.operators.flowable.FlowableMap.subscribeActual(FlowableMap.java:37)
	at io.reactivex.Flowable.subscribe(Flowable.java:14805)
	at io.reactivex.Flowable.subscribe(Flowable.java:14755)
	at io.smallrye.reactive.messaging.SubscriberMediator.run(SubscriberMediator.java:113)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at io.smallrye.reactive.messaging.extension.MediatorManager.weaving(MediatorManager.java:229)
	at io.smallrye.reactive.messaging.extension.MediatorManager.lambda$initializeAndRun$6(MediatorManager.java:169)
	at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656)
	at java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:669)
	at java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:1997)
	at io.smallrye.reactive.messaging.extension.MediatorManager.initializeAndRun(MediatorManager.java:120)
	at io.smallrye.reactive.messaging.extension.MediatorManager_ClientProxy.initializeAndRun(Unknown Source)
	at io.quarkus.smallrye.reactivemessaging.runtime.SmallRyeReactiveMessagingLifecycle.onApplicationStart(SmallRyeReactiveMessagingLifecycle.java:20)
	... 10 more


Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions