Я пишу программу Java, которая будет продолжать прослушивать очередь JMS/ActiveMQ для любых сообщений. Когда в очереди есть сообщение, эта программа подберет сообщение и обработает его. В этой программе есть метод main(). Теперь я хочу развернуть эту программу в JBoss/Wildfly. На JBoss уже развернуто несколько веб-приложений. Я хочу развернуть эту программу также на JBoss, чтобы избежать ручного запуска. Всякий раз, когда сервер JBoss запускается, эта программа также должна запускаться и прослушивать очередь.
Если основной метод не может быть использован, мне нужен совет по альтернативному решению этого требования.




На серверах приложений вы не можете запускать Java-приложение. Вы должны развернуть веб-приложение как войну или ухо.
Что ты можешь сделать:
1) Преобразуйте свое автономное приложение Java в веб-приложение и определите сервлет. Этот сервлет запустит ваш процесс. Итак, в этом случае, когда сервер запустится, он развернет ваш пакет (war или ear), инициализирует ваш сервлет, а затем запустит ваш процесс. 2) Преобразуйте свое автономное приложение Java в веб-приложение с помощью планировщика (linuxquart), чтобы запустить процесс. Это лучше, чем первый вариант, потому что вам не нужно создавать сервет.
PS: когда вам нужно запустить отдельное приложение Java, как правило, мы используем другие службы для выполнения этой работы (например, вкладка Control-M или cron в Linux)
Здорово. Попробую второй способ.
Могу ли я получить несколько примеров или ссылку для реализации планировщика Quartz в среде кластера (Active-Active). Когда запускается первое задание, то второй узел не должен запускать это задание.
@Akram API кварца может выполняться в кластерных средах. Он использует таблицы в базе данных для управления многократным выполнением. Посмотрите эту тему stackoverflow.com/questions/12626380/…
Отличные и полезные ответы. Это мне очень помогло.
Это помогло мне получить некоторые идеи. Но теперь я пытаюсь реализовать службу уведомлений, которая будет запускаться своевременно, а не отслеживать очередь. Поэтому я планирую использовать планировщик Quartz, как многие предлагают. Спасибо за ваши комментарии. @ДжастинБертрам