Question
Je veux intercepter toutes les invocations de méthode à tous les composants de couture pour voir si cela pouvait aider dans les exceptions de l'exploitation forestière. Je pensais que je pouvais le faire en obtenant la liste de tous les composants et enregistré intercepteurs et en ajoutant simplement celui que je veux à cette liste.
Walter
La solution
Essayez de remplacer la valeur par défaut ExceptionFilter avec votre propre à une priorité plus élevée.
@Name("org.jboss.seam.web.exceptionFilter")
@Install(precedence = MOCK, classDependencies="javax.faces.context.FacesContext")
@BypassInterceptors
@Filter(within="org.jboss.seam.web.ajax4jsfFilter")
public class ExceptionFilter extends org.jboss.seam.web.ExceptionFilter
@Override
protected endWebRequestAfterException(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Exception e) {
// here you log exceptions
}
}
Autres conseils
Il est préférable d'utiliser le gestionnaire d'exception de Seam. Voici comment vous pouvez le faire:
@Name("org.jboss.seam.exception.exceptions")
@Scope(ScopeType.APPLICATION)
@Install(precedence = Install.APPLICATION)
@BypassInterceptors
public class ExceptionHandler extends org.jboss.seam.exception.Exceptions {
public void handle(Exception e) throws Exception {
//Log your exception here if you want
Events.instance().raiseAsynchronousEvent("SomeListener",e.getMessage());
super.handle(e);
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow