Amqp Quarkus中反应式消息中未设置使用者时的异常
我遵循官方Quarkus消息传递指南,创建了一个简单的示例来体验使用AMQP(Apache Artemis)的反应式消息传递功能 完整的代码是 这个例子是可行的,但是有一个小问题,我必须先启动一个Amqp Quarkus中反应式消息中未设置使用者时的异常,amqp,quarkus,activemq-artemis,smallrye-reactive-messaging,Amqp,Quarkus,Activemq Artemis,Smallrye Reactive Messaging,我遵循官方Quarkus消息传递指南,创建了一个简单的示例来体验使用AMQP(Apache Artemis)的反应式消息传递功能 完整的代码是 这个例子是可行的,但是有一个小问题,我必须先启动一个curl来使用消息,然后使用另一个curl来发送消息 //启动消费端。 卷曲http://localhost:8080/messages -H“接受:文本/事件流” //开始发送。 卷曲http://localhost:8080/messages -d“你好,Quarkus”-H“内容类型:文本/普通”
curl
来使用消息,然后使用另一个curl
来发送消息
//启动消费端。
卷曲http://localhost:8080/messages -H“接受:文本/事件流”
//开始发送。
卷曲http://localhost:8080/messages -d“你好,Quarkus”-H“内容类型:文本/普通”
//然后消费者退出。
//发送消息将导致异常。
如果取消消费者,然后发送消息,则会引发异常
2020-10-12 20:18:54137警告[io.net.cha.AbstractChannelHandlerContext](vert.x-eventloop-thread-6)未能将承诺标记为失败,因为它已失败:DefaultChannelPromise@4bda4836(失败:java.nio.channels.ClosedChannelException),未通知的原因:java.nio.channels.ClosedChannelException
位于io.netty.channel.AbstractChannel$AbstractSafe.NewClosedChannel异常(AbstractChannel.java:957)
位于io.netty.channel.AbstractChannel$AbstractSafe.write(AbstractChannel.java:865)
位于io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)
位于io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717)
位于io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764)
位于io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790)
位于io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758)
位于io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:767)
位于io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790)
位于io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758)
位于io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:767)
位于io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790)
位于io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758)
位于io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:767)
位于io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790)
位于io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758)
在io.vertx.core.net.impl.ConnectionBase.write(ConnectionBase.java:124)
位于io.vertx.core.net.impl.ConnectionBase.lambda$queueForWrite$2(ConnectionBase.java:215)
位于io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
位于io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472)
在io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500)
位于io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
位于io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
在io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
位于java.base/java.lang.Thread.run(Thread.java:832)
:io.netty.util.IllegalReferenceCountException:refCnt:0,减量:1
位于io.netty.util.internal.ReferenceCountUpdater.toLiveRealRefCnt(ReferenceCountUpdater.java:74)
位于io.netty.util.internal.ReferenceCountUpdater.release(ReferenceCountUpdater.java:138)
位于io.netty.buffer.AbstractReferenceCountedByteBuf.release(AbstractReferenceCountedByteBuf.java:100)
位于io.netty.handler.codec.http.DefaultHttpContent.release(DefaultHttpContent.java:92)
在io.netty.util.ReferenceCountUtil.release(ReferenceCountUtil.java:88)上
在io.netty.channel.AbstractChannel$AbstractSafe.write(AbstractChannel.java:867)
位于io.netty.channel.DefaultChannelPipeline$HeadContext.write(DefaultChannelPipeline.java:1367)
位于io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:717)
位于io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:764)
位于io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790)
位于io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758)
位于io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:767)
位于io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790)
位于io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758)
位于io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:767)
位于io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790)
位于io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758)
位于io.netty.channel.AbstractChannelHandlerContext.invokeWriteAndFlush(AbstractChannelHandlerContext.java:767)
位于io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:790)
位于io.netty.channel.AbstractChannelHandlerContext.writeAndFlush(AbstractChannelHandlerContext.java:758)
在io.vertx.core.net.impl.ConnectionBase.write(ConnectionBase.java:124)
位于io.vertx.core.net.impl.ConnectionBase.lambda$queueForWrite$2(ConnectionBase.java:215)
位于io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164)
在io.netty.util.concurrent.SingleThreadEvent
<address name="messages">
<anycast>
<queue name="messages" />
</anycast>
</address>