Ich würde gerne wissen, ob der RequestScoped
Kontext derzeit in einer Methode aktiv ist oder nicht.Gibt es eine Möglichkeit zu wissen, ob ein Status aktiv ist, ohne dass ContextNotActiveException abgefangen wird?
Im Moment ist hier, was ich tue:
@Inject private BeanManager beanManager;
public boolean isRequestScopeActive() {
try {
if (beanManager.getContext(RequestScoped.class).isActive()) {
return true;
} else {
return false;
}
} catch (final ContextNotActiveException e) {
return false;
}
}
Ich denke, es ist ein bisschen schwer ist ein ContextNotActiveException
nur zu wissen, zu fangen, wenn ein Bereich aktiv ist oder nicht.
Haben Sie eine bessere Möglichkeit, den Status (aktiv oder nicht) eines Kontexts in CDI zu kennen?
RequestScoped sollte eigentlich immer aktiv sein, es sei denn, Sie tun etwas über ein asynchrones Ereignis. Was versuchst du zu machen? – LightGuard
Ja, ich versuche das zu erkennen, weil ich möglicherweise in einem asynchronen Ereignis oder in einem geplanten Ereignis bin ... siehe https://issues.jboss.org/browse/SEAMPERSIST-78 –
In diesem Fall, was Sie haben ist wahrscheinlich die beste Lösung – LightGuard