Jwt Spring AMQP转换器发送和接收VS发送和接收

Jwt Spring AMQP转换器发送和接收VS发送和接收,jwt,spring-amqp,Jwt,Spring Amqp,我有一个项目,通过AMQP发送带有签名JSON对象的消息。在服务器端,我有以下内容: public class MyServerHandler implements MessageListener{ ... @Override public void onMessage(Message msg) { String _payload = new String(msg.getBody(), StandardCharsets.UTF_8); Syst

我有一个项目,通过AMQP发送带有签名JSON对象的消息。在服务器端,我有以下内容:

public class MyServerHandler implements MessageListener{
...
   @Override
   public void onMessage(Message msg) 
   {
        String _payload = new String(msg.getBody(), StandardCharsets.UTF_8);
        System.out.println(_payload);
        ...
现在,如果我像这样使用convertSendAndReceive方法:

String msg = ...deo // JSON object (String)
Object response = getRabbitOperations().convertSendAndReceive(_myExchange, _myRoutingKey, msg,
                new MessagePostProcessor() 
                {
                    public Message postProcessMessage(Message message) throws AmqpException 
                    {
                        message.getMessageProperties().setDeliveryMode(MessageDeliveryMode.NON_PERSISTENT);
                        message.getMessageProperties().setRedelivered(false);
                        message.getMessageProperties().setUserId(_myUser);
                        message.getMessageProperties().setType(_myType);
                        return message;
                    }
                }
        );
当我获取AMQP消息的内容时,我会发送字符串,但以引号表示:

String _payload = new String(msg.getBody(), StandardCharsets.UTF_8);
System.out.println(_payload);

"eyJ4NWMiOlsiTUlJRHV6Q0NBcU9nQXdJQkFnSUNDMEV3RFFZSktvWklodmNOQVFFR....."
MessageProperties mp = new MessageProperties();
mp.setDeliveryMode(MessageDeliveryMode.NON_PERSISTENT);
mp.setRedelivered(false);
mp.setUserId(_myUser);
mp.setType(_myType);
Message _m = new Message(msg.getBytes(), mp);
Object _response = getRabbitOperations().sendAndReceive(_myExchange, _myRoutingKey, _m);
但是如果我使用发送和接收方法,我不会得到引号:

String _payload = new String(msg.getBody(), StandardCharsets.UTF_8);
System.out.println(_payload);

"eyJ4NWMiOlsiTUlJRHV6Q0NBcU9nQXdJQkFnSUNDMEV3RFFZSktvWklodmNOQVFFR....."
MessageProperties mp = new MessageProperties();
mp.setDeliveryMode(MessageDeliveryMode.NON_PERSISTENT);
mp.setRedelivered(false);
mp.setUserId(_myUser);
mp.setType(_myType);
Message _m = new Message(msg.getBytes(), mp);
Object _response = getRabbitOperations().sendAndReceive(_myExchange, _myRoutingKey, _m);
在服务器端,我得到(使用相同的代码):

为什么呢?我能把它换成同样的工作方式吗?哪一个是正确的?
感谢您

解决了
发送和接收
的问题,它直接处理消息并绕过
消息转换器
。根据您的报价经验,似乎有一个JSON转换器。
您可以使用
SimpleMessageConverter
。但是这并不重要:如果你想发送clear
byte[]
,只需对
ConvertSendReceive
执行相同的
msg.getBytes()
,你需要显示其余的配置;看来您的发送端和接收端的消息转换器不匹配。谢谢。是的,我有一个JSON转换器:@Bean public RabbitTemplate RabbitTemplate(){RabbitTemplate=new RabbitTemplate(simpleRoutingConnectionFactory());template.setMessageConverter(jsonMessageConverter());但我需要它(至少目前需要)。如果我使用msg.getBytes()收到的消息与发送的消息不同,因此目前的解决方案是在收到消息后删除服务器上的那些引号。