CDI - Beobachten Container Events
-
30-09-2019 - |
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?
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