我正在尝试观察CDI Web应用程序的启动和关闭事件。我有一个应用程序的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);
    }

我在日志中看不到任何东西。

我想念什么?

有帮助吗?

解决方案

多亏了皮特·缪尔(Pete Muir),解决方案是实现扩展接口。一旦我这样做,以及创建一个特殊文件,它可以很好地工作。

要记住的事情是,如果您想观察(或行动)容器事件,则必须实现扩展接口,因为这是一个特殊的事件。

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