AMQPを介して署名されたJSONオブジェクトでメッセージを送信するプロジェクトがあります。私はAMQPメッセージの内容を取得するとSpring AMQP convertSendAndReceive VS sendAndReceive
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;
}
}
);
私は、文字列を取得します:私は方法このようなconvertSendAndReceiveを使用する場合、今
public class MyServerHandler implements MessageListener{
...
@Override
public void onMessage(Message msg)
{
String _payload = new String(msg.getBody(), StandardCharsets.UTF_8);
System.out.println(_payload);
...
:サーバー側では、私は以下の持っています送信されたが、二重引用符で:
String _payload = new String(msg.getBody(), StandardCharsets.UTF_8);
System.out.println(_payload);
"eyJ4NWMiOlsiTUlJRHV6Q0NBcU9nQXdJQkFnSUNDMEV3RFFZSktvWklodmNOQVFFR....."
しかし、私はsendAndReceiveメトを使用している場合(同じコードで)私が取得、サーバー側で
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);
:dが、私は引用符を取得しないのはなぜそれが
eyJ4NWMiOlsiTUlJRHV6Q0NBcU9nQXdJQkFnSUNDMEV3RFFZSktvWklodmNOQVFFR.....
のですか?同じように動作するように変更することはできますか?そして、どちらが正しいでしょうか? ありがとう
残りの設定を表示する必要があります。送信側と受信側で不一致のメッセージコンバータがあるようです。 –