6

CDIWebアプリケーションの起動イベントとシャットダウンイベントの両方を監視しようとしています。これらのイベントをリッスンするApplicationScopedBeanがあります。

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

ログに何も表示されません。

私は何が欠けていますか?

4

2 に答える 2

15

Pete Muirのおかげで、解決策は拡張インターフェースを実装することでした。一度それを行うと、特別なファイルを作成するとともに、それは完全に機能しました。

覚えておくべきことは、コンテナイベントを監視(または処理)する場合は、特別なイベントであるため、拡張インターフェイスを実装する必要があるということです。

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

ウォルター

于 2010-08-27T22:59:49.577 に答える
7

WalterWhiteが言及した「特別なファイル」は次のとおりです。

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

そのファイルには、Extensionクラスの完全修飾名が含まれている必要があります。すなわち:

org.mydomain.extension.MyExtension
于 2011-12-15T00:06:40.103 に答える