Domanda

sto cercando di osservare sia gli eventi di avvio e di arresto per un'applicazione web CDI. Ho un bean ApplicationScoped che ascolti per quegli eventi:

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

Non vedo niente nei registri.

Che cosa mi manca?

È stato utile?

Soluzione

Grazie a Pete Muir, la soluzione era quella di implementare l'interfaccia di estensione. Una volta che ho fatto, insieme con la creazione di un file speciale, ha funzionato perfettamente.

La cosa da ricordare è che, se si desidera osservare (o agire su) contenitore di eventi, è necessario implementare l'interfaccia di estensione in quanto è un evento speciale.

https: //docs.jboss. org / saldatura / di riferimento / ultima / it-IT / html / extend.html # d0e4984

Walter

Altri suggerimenti

Il "file speciale" di cui parla Walter White è:

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

Il file deve contenere il nome completo della classe Extension. vale a dire:

org.mydomain.extension.MyExtension
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top