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

Était-ce utile?

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
scroll top