Выполнение действий после деплоя WAR приложения в WildFly8
Есть задача - при запуске сервера автоматически запускать viber бота (находится в отдельной war). Чтобы его запустить нужно указать свой url и написать свой сервлет, на который viber будет отправлять запросы. Проблема в том, что при использовании ServletContextListener, в котором я отправляю свой url viber'у, существует вероятность, что war не задеплоится (на момент, когда viber будет отправлять запрос) и viber не достучится до моего сервлета. Нигде не нашёл можно ли отследить, что war задеплоился и после этого отправлять свой url viber'у? Или может быть есть другие варианты?
Ответы (1 шт):
Конечно есть!
Забить на то, что вибер не достучится.
Вам конечно лучше знать, что может плохого случиться.
Но с другой стороны всякие неприятности могут происходить и во время работы. Кто-нибудь оборвёт провода и вибер опять не сможет достучаться.Точно
ServletContextListenerвызывается во время деплоя, а не после успешного его завершения?Servlet-ы тоже можно инициализировать при запуске. Параметр
loadOnStartupаннотации@WebServlet.
@WebServlet(value="path", loadOnStartup = 1)В методе init() или конструкторе отправить url виберу.Можно сделать ejb-бин с аннотациями
@Startupи методом@PostConstruct. Уже не знаю есть ли вероятность того, что такой бин будет создан, а потом war вдруг не задеплоится. Но url скорее всего будет трудно вычислить. Не помню есть ли способ в ejb узнать contextPath.
Далее не способ выполнения действий после деплоя, а способ подключения внешних информ. систем.
Так вот, для связи в внешними системами (EIS) в javaee предусмотрели Java EE Connector Architecture или JCA.
Сложнова-то конечно. Зато вибер может достучаться, даже когда приложение не задеплоено.