我要拦截所有的方法调用到所有的Seam组件,看看是否会在日志例外帮助。我在想,我能做到这一点通过让所有的组件列表和注册拦截器,只需添加一个我想这个列表。

沃尔特

有帮助吗?

解决方案

尝试以更高的优先级来覆盖默认ExceptionFilter用自己的。


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

其他提示

其更好地使用Seam的异常处理程序。 这是你如何做到这一点:

@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);
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top