Я использовал Rabbit MQ для отправки и получения сообщения JSON.
я реализовал приложение, используя экземпляр RabbitTemplate с помощью метода convertAndSend, чтобы отправить сообщение с обменом, как показано ниже: Как отправить идентификатор корреляции, в сообщение, отправителя и извлечения из заголовка сообщения с помощью Rabbit MQ по java
rabbitTemplate.convertAndSend(exchangeNameOut, message.getString(PERSISTENCE_MESSAGE_ROUTING_KEY),
message.getString(PERSISTENCE_MESSAGE_BODY), new CorrelationData(""+analyticRuntime.getId()));
В то время как для поиска информации сообщения, на сторону приемника, я реализовал последовавшей метод:
@RabbitListener(queues = "${rabbit.queue.mail.name}",containerFactory = "rabbitListenerContainerFactory")
public void processMailMessage(Message message) {
log.info("ENTER [processMailMessage] ");
Mail mail;
JSONObject messageBody = new JSONObject(new String(message.getBody()));
String asset = "" + messageBody.get(Constants.PERSISTENCE_MESSAGE_ASSET_ID_KEY);
String body = "" + messageBody.get(Constants.PERSISTENCE_MESSAGE_EVENT_KEY);
String alarms = "";
log.info("[processMailMessage] message.getMessageProperties().getCorrelationId() : " + message.getMessageProperties().getCorrelationId()";
}
Возникает вопрос:
- Почему message.getMe ssageProperties(). getCorrelationId() - NULL? В метод отправки я вставил корреляцию.
- Идентификатор корреляции - это то же самое, что и данные корреляции, которые я ввел в метод convertAndSend?
- Как я могу найти идентификатор корреляции в приемнике?
Благодаря
это работает, спасибо – Stefano