Как развернуть отдельное приложение Java на JBoss вместе с другими веб-приложениями

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

Если основной метод не может быть использован, мне нужен совет по альтернативному решению этого требования.

Это помогло мне получить некоторые идеи. Но теперь я пытаюсь реализовать службу уведомлений, которая будет запускаться своевременно, а не отслеживать очередь. Поэтому я планирую использовать планировщик Quartz, как многие предлагают. Спасибо за ваши комментарии. @ДжастинБертрам

Mohamed 25.04.2019 08:10
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
497
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Что ты можешь сделать:

1) Преобразуйте свое автономное приложение Java в веб-приложение и определите сервлет. Этот сервлет запустит ваш процесс. Итак, в этом случае, когда сервер запустится, он развернет ваш пакет (war или ear), инициализирует ваш сервлет, а затем запустит ваш процесс. 2) Преобразуйте свое автономное приложение Java в веб-приложение с помощью планировщика (linuxquart), чтобы запустить процесс. Это лучше, чем первый вариант, потому что вам не нужно создавать сервет.

PS: когда вам нужно запустить отдельное приложение Java, как правило, мы используем другие службы для выполнения этой работы (например, вкладка Control-M или cron в Linux)

Здорово. Попробую второй способ.

Mohamed 25.04.2019 07:57

Могу ли я получить несколько примеров или ссылку для реализации планировщика Quartz в среде кластера (Active-Active). Когда запускается первое задание, то второй узел не должен запускать это задание.

Mohamed 25.04.2019 08:12

@Akram API кварца может выполняться в кластерных средах. Он использует таблицы в базе данных для управления многократным выполнением. Посмотрите эту тему stackoverflow.com/questions/12626380/…

thiagotrss 25.04.2019 18:30

Отличные и полезные ответы. Это мне очень помогло.

Mohamed 30.04.2019 10:54

Другие вопросы по теме