RabbitMQ报错: Cannot determine ReplyTo message property value

在使用RabbitMQ进行测试时,后台报了很多错误信息。

2023-04-08 16:21:00.526  WARN 20764 --- [org.springframework.amqp.rabbit.RabbitListenerEndpointContainer#0-1] s.a.r.l.ConditionalRejectingErrorHandler : Execution of Rabbit message listener failed.


org.springframework.amqp.rabbit.support.ListenerExecutionFailedException: Listener threw exception
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.wrapToListenerExecutionFailedExceptionIfNeeded(AbstractMessageListenerContainer.java:1787) ~[spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:1677) ~[spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.actualInvokeListener(AbstractMessageListenerContainer.java:1592) ~[spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.invokeListener(AbstractMessageListenerContainer.java:1580) ~[spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doExecuteListener(AbstractMessageListenerContainer.java:1571) ~[spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.executeListener(AbstractMessageListenerContainer.java:1515) ~[spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.doReceiveAndExecute(SimpleMessageListenerContainer.java:994) [spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.receiveAndExecute(SimpleMessageListenerContainer.java:941) [spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer.access$1600(SimpleMessageListenerContainer.java:85) [spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.mainLoop(SimpleMessageListenerContainer.java:1319) [spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1225) [spring-rabbit-2.4.9.jar:2.4.9]
    at java.lang.Thread.run(Thread.java:748) [na:1.8.0_281]
Caused by: org.springframework.amqp.rabbit.listener.adapter.ReplyFailureException: Failed to send reply with payload 'InvocationResult [returnValue=my message, returnType=class java.lang.String, bean=com.example.hello.listener.RabbitMQListener@435ce306, method=public java.lang.String com.example.hello.listener.RabbitMQListener.handleMsg(java.lang.String)]'
    at org.springframework.amqp.rabbit.listener.adapter.AbstractAdaptableMessageListener.doHandleResult(AbstractAdaptableMessageListener.java:492) ~[spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.adapter.AbstractAdaptableMessageListener.handleResult(AbstractAdaptableMessageListener.java:416) ~[spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.invokeHandlerAndProcessResult(MessagingMessageListenerAdapter.java:211) ~[spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.adapter.MessagingMessageListenerAdapter.onMessage(MessagingMessageListenerAdapter.java:148) ~[spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.doInvokeListener(AbstractMessageListenerContainer.java:1673) ~[spring-rabbit-2.4.9.jar:2.4.9]
    ... 10 common frames omitted
Caused by: org.springframework.amqp.AmqpException: Cannot determine ReplyTo message property value: Request message does not contain reply-to property, and no default response Exchange was set.
    at org.springframework.amqp.rabbit.listener.adapter.AbstractAdaptableMessageListener.getReplyToAddress(AbstractAdaptableMessageListener.java:592) ~[spring-rabbit-2.4.9.jar:2.4.9]
    at org.springframework.amqp.rabbit.listener.adapter.AbstractAdaptableMessageListener.doHandleResult(AbstractAdaptableMessageListener.java:488) ~[spring-rabbit-2.4.9.jar:2.4.9]
    ... 14 common frames omitted

仔细检查了下配置,没有发现问题。

看报错信息是“ReplyTo message ”,貌似是返回值有问题。

检查了下出现问题的方法,这个方法确实有个返回值。

@Component
public class RabbitMQListener {

    @RabbitListener(queues = "myqueue")
    public String handleMsg(String msg){
        System.out.println(msg);
        return msg;
    }
}

将这个方法给我无返回值后,就没有再报错。

看来使用@RabbitListener时不能有返回值。

正确的方式如下:

@Component
public class RabbitMQListener {

    @RabbitListener(queues = "myqueue")
    public void handleMsg(String msg){
        System.out.println(msg);
    }
}
展开阅读全文

页面更新:2024-03-13

标签:后台   仔细   确实   正确   方式   发现   方法   信息

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top