メッセージフローが相関IDに基づいているというシナリオがあります。だから私は送信者のメッセージのプロパティで相関Idの文字列を設定しています。しかし、私は受信者のメッセージに同じIDを受け取っていません。メッセージプロセッサクラスで同じ相関IDを設定する他のオプションを見てきましたが、メッセージを設定できます。 「変換して送信」で簡単な送受信機能で相関IDを取得する方法はありますか教えてください。messageProperties.setCorrelationIdStringが機能しない
messProperties.setCorrelationId()
は、最新の春バージョンでは廃止予定です。
マイ送信者:
public class Send {
private static ApplicationContext context = new ClassPathXmlApplicationContext("rabbitConfiguration.xml");
private static RabbitTemplate template = context.getBean(RabbitTemplate.class);
public static void main(String[] args) {
MessageProperties messProperties = new MessageProperties();
messProperties.setDeliveryMode(MessageDeliveryMode.PERSISTENT);
//messProperties.setCorrelationId("coid".getBytes());
messProperties.setCorrelationIdString("dee");
Message messageToSend = new Message("Message with ssl".getBytes(), messProperties);
template.send("message.ssl", messageToSend);
}
}
MyReceiverコード:
public class Receive {
private static ApplicationContext context = new ClassPathXmlApplicationContext("rabbitConfiguration.xml");
private static RabbitTemplate template = context.getBean(RabbitTemplate.class);
public static void main(String[] args) {
Message recMess = template.receive("SSLQueue");
String id=new String(recMess.getMessageProperties().getCorrelationId());
System.out.println("the corelation id from receiver is"+id);
String recStr = new String(recMess.getBody());
System.out.println("received message is"+recStr);
}
}