У меня сценарий, что поток сообщений основан на идентификаторе корреляции. Поэтому я устанавливаю строку 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);
}
}