rabbitmq spring ReturnCallback和confimcallback

时间:2017-07-19 11:23:38

标签: spring-rabbitmq

以下是我的代码:

rabbitTemplate.setMandatory(true);
rabbitTemplate.setReturnCallback(new ReturnCallback() {
    @Override
    public void returnedMessage(Message message, int replyCode,
            String replyText, String exchange, String routingKey) {
        System.out.println("Received returnedMessage with result {}"
                + routingKey);

    }
});
rabbitTemplate.setConfirmCallback(new ConfirmCallback() {
    @Override
    public void confirm(CorrelationData correlationData, boolean ack,
            String cause) {
        System.out
                .println("*************************************************************************************"
                        + ack);
        //log.info("Received confirm with result {}", ack);

        System.out.println("Message received by broker");

    }
});

它不打印消息"经纪人收到的消息"。 帮助我任何一个人。在此先感谢!

1 个答案:

答案 0 :(得分:0)

您还需要配置连接工厂以支持这些功能see the documentation

  

对于返回的消息,必须将模板的必需属性设置为true,或者对于特定消息,mandatory-expression必须求值为true。此功能需要将CachingConnectionFactory属性设置为true的publisherReturns

     

...

     

对于Publisher Confirms(也称为Publisher Acknowledgements),模板需要CachingConnectionFactorypublisherConfirms属性设置为true。

     

...