Вопрос

Я пытаюсь наблюдать как события запуска, так и отключения для веб-приложения CDI. У меня есть приложениеCOped Bean, который слушает эти события:

@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);
    }

Я ничего не вижу в бревнах.

Что мне не хватает?

Это было полезно?

Решение

Благодаря Пит Мьюиру решение было реализации интерфейса расширения. Как только я сделал это, наряду с созданием специального файла, он работал идеально.

То, что нужно помнить, если вы хотите наблюдать (или действовать) контейнерные события, вы должны реализовать интерфейс расширения, как это специальное событие.

https://docs.jboss.org/weld/reference/latest/en-us/html/extend.html#d0e4984.

Уолтер

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

«Специальный файл», упомянутый Walter White:

META-INF/services/javax.enterprise.inject.spi.Extension

Этот файл должен содержать полностью квалифицированное имя вашего класса расширения. IE:

org.mydomain.extension.MyExtension
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top