如何在自定义消息中使用RabbitTemplate sendAndReceive函数?

问题描述

我是Spring AMQP的新手。我想通过自定义消息使用sendAndReceive()。

public void send (String exchange,String routingKey,MyCustomMessage message){
    CorrelationData correlationData = new CorrelationData("correlation-data");
    rabbitTemplate.sendAndReceive(exchange,routingKey,message,correlationData);
}

但是此代码会出现错误消息

使'MyCustomMessage'扩展org.springframework.amqp.core.Message'

扩展消息是使用CustomMessage的唯一方法吗? 使用convertAndSend函数时,我没有扩展。

解决方法

否;只要它与模板中的MessageConverter兼容(默认SimpleMessageConverter可以处理Serializable,或者您可以将Jackson2JsonMessageConverter用于JSON友好类,或者您可以使用自定义消息转换器)。

然后,使用template.convertSendAndReceive(...)代替sendAndReceive