Frage

Ich versuche, sowohl die An- und Abfahren Ereignisse für eine CDI Web-Anwendung zu beachten. Ich habe eine ApplicationScoped Bohne, dass Streams für die Ereignisse:

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

Ich sehe nichts in den Protokollen.

Was bin ich?

War es hilfreich?

Lösung

Dank Pete Muir war die Lösung, die die Erweiterung Schnittstelle zu implementieren. Nachdem ich das getan hätte, zusammen mit einer speziellen Datei zu erstellen, es funktionierte perfekt.

Das ist daran zu erinnern ist, wenn Sie (oder handeln auf) Container Ereignisse beobachten wollen, müssen Sie den Erweiterungs-Schnittstelle implementieren, da es ein besonderes Ereignis ist.

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

Walter

Andere Tipps

Die "spezielle Datei" erwähnt von Walter White ist:

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

sollte Diese Datei enthält die vollständig qualifizierten Namen Ihrer Erweiterungsklasse. dh:

org.mydomain.extension.MyExtension
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top