#ejb-3.0 #jboss5.x
#ejb-3.0 #jboss5.x
Вопрос:
Я искал это некоторое время, но, похоже, не могу найти ответ на этот вопрос. Как я могу выполнить некоторый код при развертывании jar-файла EJB3 на сервере JBoss? Например, мне нужно запустить некоторые сценарии миграции sql, прежде чем компоненты будут готовы к использованию.
Комментарии:
1. У меня есть ответ, но он начинается с «Сначала обновите до JBoss 7 …», так что, вероятно, вам не очень пригодится, извините!
Ответ №1:
Если вы не можете использовать EJB 3.1 (с @Singleton @Startup), я бы рекомендовал упаковать ваш модуль EJB в EAR с помощью WAR. Добавьте ServletContextListener в WAR и выполните свои действия в методе contextInitialized .
Комментарии:
1. Да, это, кажется, один из хороших способов добиться этого. Тем не менее, мы решили использовать расширение JBoss для EJB3, называемое Service POJOs. У этих служб есть методы запуска, которые вызываются при развертывании приложения. Я понимаю, что это не стандартный способ, но поскольку мы застряли с JBoss, это, кажется, самый простой способ запустить код миграции БД.
Ответ №2:
Вы можете создать службу JBoss MBean с прослушивателем, который может выполнять любую инициализацию (в вашем случае запускаются сценарии SQL) после полного запуска JBoss и до использования любого EJB. Я создал такую службу, и мы запускаем ее на JBoss 4.2.3.GA таким образом, вам не нужно переходить на JBoss 7.