Я пытаюсь наблюдать как события запуска, так и завершения работы веб-приложения CDI. У меня есть компонент ApplicationScoped, который прослушивает эти события:
@ApplicationScoped
public class PrettyfacesStartupObserver
{
private static final Log LOGGER = LogFactory.getLog(PrettyfacesStartupObserver.class);
public PrettyfacesStartupObserver()
{
LOGGER.debug("\n\n\n\n\n\n\n\n\n\nconstructor");
}
public void onStartup(@Observes
AfterBeanDiscovery afterBeanDiscovery
)
{
LOGGER.debug("\n\n\n\n\n\n\n\n\n\nafter bean discover");
}
public void onStartup(@Observes
AfterDeploymentValidation afterDeploymentValidation
)
{
LOGGER.debug("\n\n\n\n\n\n\n\n\n\n\nafter deployment validation");
}
public void onShutdown(@Observes
BeforeShutdown beforeShutdown
)
{
LOGGER.debug("\n\n\n\n\n\n\n\n\n\n\nbefore shutdown:" + beforeShutdown);
}
Я ничего не вижу в журналах.
Чего мне не хватает?
Благодаря Питу Мьюиру решение заключалось в реализации интерфейса Extension. Как только я это сделал вместе с созданием специального файла, все заработало отлично.
Следует помнить, что если вы хотите наблюдать за событиями контейнера (или воздействовать на них), вы должны реализовать интерфейс расширения, поскольку это особое событие.
https://docs.jboss.org/weld/reference/latest/en-US/html/extend.html#d0e4984
Вальтер