猿问

来自 Vertx 和 AMQPBridge 的 Java 运行时警告

我将以下 Java 片段与 Vertx IO 一起用于 AQMP 1.0:


    this.vertx = Vertx.vertx();


    AmqpBridge bridge = AmqpBridge.create(this.vertx);


    // Start the bridge, then use the event loop thread to process things

    // thereafter.

    bridge.start(hostname, port,

            username, password, res -> {


                // Set up a consumer using the bridge, register a handler for it.

                MessageConsumer<String> consumer = bridge

                        .createConsumer(this.processorConfiguration.getQueueName());


                // Add the message handler.

                consumer.handler(vertxMsg -> {

                    String payload = vertxMsg.body();


                    logger.debug("Rx: " + payload);

                });


                consumer.exceptionHandler(error -> {


                    logger.error("Error - " + error.getMessage());

                });

            });

}

当我运行这段代码时,我得到:


2019-08-27 10:28:27,071 警告 (Slf4JLogger.java:151) - 触发了 exceptionCaught() 事件,并且它到达了管道的尾部。这通常意味着管道中的最后一个处理程序没有处理异常。io.netty.channel.ChannelPipelineException:io.vertx.core.net.impl.VertxHandler.handlerAdded() 抛出异常;删除。在 io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:616) 在 io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:226) 在 io.netty.channel.DefaultChannelPipeline.addLast(DefaultChannelPipeline.java:19) 2个)在 io.vertx.core.net.impl.NetClientImpl.connected(NetClientImpl.java:233) 在 io.vertx.core.net.impl.NetClientImpl.lambda$doConnect$3(NetClientImpl.java:188) 在 io.vertx .core.net.impl.ChannelProvider。


这只是一个警告,但这是我需要解决的问题吗?我似乎无法找出未处理的异常是什么。我目前无法让我的应用程序接收任何消息,所以我试图弄清楚这是否相关,或者(更有可能)我正在做其他愚蠢的错误。


我想当我使用 AmqpClient 而不是使用以下命令时,我收到了相同的警告:


https://vertx.io/docs/vertx-amqp-client/java/


慕斯709654
浏览 95回答 1
1回答

烙印99

发布后不久我灵机一动,检查了我正在使用的 POM 文件。其中一个依赖项是使用旧版本的 Netty,这导致了此警告。我升级了依赖项,它使用了新版本的 Netty,警告消失了,我现在可以接收消息了。干杯!
随时随地看视频慕课网APP

相关分类

Java
我要回答