Rabbitmq 在org.springframework.messaging.Message中使用rabbitemplate.convertSendAndReceive

Rabbitmq 在org.springframework.messaging.Message中使用rabbitemplate.convertSendAndReceive,rabbitmq,spring-amqp,Rabbitmq,Spring Amqp,我已成功使用以下命令发送org.springframework.amqp.core.Message并接收字节[] import org.springframework.amqp.core.Message; import org.springframework.amqp.core.MessageBuilder; import org.springframework.amqp.rabbit.core.RabbitTemplate; Message message = MessageBuilder

我已成功使用以下命令发送
org.springframework.amqp.core.Message
并接收
字节[]

import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;

Message message = 
MessageBuilder.withBody(payload)..setCorrelationIdString(id).build();
byte [] response = (byte[]) rabbitTemplate.convertSendAndReceive(message,m -> {
        m.getMessageProperties().setCorrelationIdString(id);
如果将队列设置为正确处理
消息
的消息,则此功能可以正常工作。但是我有一系列队列,它们使用消息类型
org.springframework.messaging.message
,特别是
message

是否有一种方法可以使用rabbitmplate.convertSendAndReceive发送org.springframework.messaging.Message消息。这样,下面的方法就行了

import org.springframework.messaging.Message; 
import org.springframework.integration.support.MessageBuilder;
import org.springframework.amqp.rabbit.core.RabbitTemplate;

Message<String> message = 
MessageBuilder.withPayload(payload).setCorrelationId(id).build();
Object returnObject = rabbitTemplate.convertSendAndReceive(message);
import org.springframework.messaging.Message;
导入org.springframework.integration.support.MessageBuilder;
导入org.springframework.amqp.rabbit.core.RabbitTemplate;
消息消息=
MessageBuilder.withPayload(payload).setCorrelationId(id).build();
Object returnObject=rabbitTemplate.ConvertSendReceive(消息);
我已经看过MessageConverter,但我不确定是否可以使用它

或者,我应该使用
org.springframework.messaging.core.GenericMessagingTemplate.convertSendAndReceive

更新

如果我更改队列中的内容,我可以使它工作

@转换器(inputChannel=Processor.INPUT,outputChannel=Processor.OUTPUT)
公共消息转换(消息中的消息){

@转换器(inputChannel=Processor.INPUT,outputChannel=Processor.OUTPUT)
公共消息转换(消息中的消息){GenericMessage
genericMessage=(genericMessage)inMessage.getPayload();
字符串负载=(字符串)genericMessage.getPayload();

但是我不希望为了实现这一点而改变转换器,因为所讨论的代码是用于集成测试的,并且现有代码已经可以使用我已经拥有的代码

结束更新


我想我已经提供了足够的信息,但如果需要更多的细节,请告诉我。理想情况下,我正在寻找一个代码示例或指向回答我问题的文档。

使用
RabbitMessagingTemplate

公共消息发送和接收(字符串交换、字符串路由键、消息请求消息)

非常感谢您的帮助,您的工作完美且符合预期。很酷。请参阅。这将帮助其他人搜索相同的答案。答案中的链接已断开。
public Message<?> sendAndReceive(String exchange, String routingKey, Message<?> requestMessage)