ActiveMQ просматривать необработанные данные сообщения в веб-консоли - PullRequest
5 голосов
/ 16 мая 2011

Я успешно использую веб-консоль для своего экземпляра AMQ 5.2, за исключением того, что не вижу содержимого всех своих сообщений.

Если я отправляю тестовое сообщение с помощью веб-консоли, я вижуобразец текстового содержимого, но я считаю, что приложение-поставщик, с которым я работаю, содержит содержимое сообщения в двоичном или байтовом массиве.

Что мне нужно сделать, чтобы иметь возможность просматривать эти необработанные данные?

Спасибо

1 Ответ

4 голосов
/ 10 июля 2013

Насколько мне известно, невозможно просматривать сообщения в консоли администратора. Вы можете получить некоторую статистику (например, сколько сообщений было отправлено и т. Д.). ActiveMQ не отменяет маршалинг сообщений при их получении (из соображений производительности демонтирование довольно дорого).

Таким образом, если вы хотите каким-то образом проверять сообщения на предмет их содержания, вы в основном можете сделать 2 вещи:

  1. Напишите потребителя, который регистрирует все темы / очереди, через которые вы можете видеть содержимое сообщений. Недостаток: если вы используете взаимодействие на основе очереди, ваши «настоящие» потребители не получат все сообщения
  2. Напишите плагин activeMQ, который просматривает сообщения. Взгляните на плагин ActiveMQ Logger. Затем напишите свой собственный (вам понадобятся источники для его компиляции) и загрузите его с ActiveMQ (см. Документацию о том, как настроить ActiveMQ для загрузки плагинов). Вы хотите переопределить метод send (), который вызывается всякий раз, когда кто-то отправляет сообщение посреднику. Там вы получаете ссылку на сообщение и можете получить доступ к его содержимому.

Ни одно из двух сообщений не предоставляет удобный механизм просмотра. Вам придется прибегнуть к стандартным или написать свой собственный веб-доступ.

...