不要在tomcat中记录未处理的异常

时间:2015-09-23 18:33:28

标签: java tomcat logging exception-handling spring-saml

我们有一个tomcat webapp,在一个有点正常的无效登录尝试期间,它会在疯狂的Spring SAML内部深处抛出一些可怕的SAML身份验证异常。异常未处理,用户使用

重定向到半有用的错误页面
   <error-page>
      <exception-type>com.test.SomeException</exception-type>
      <location>/error.jsp</location>
   </error-page>

它工作正常,除了tomcat仍然在catalina.out中记录未处理的异常。是否有一些简单的方法可以防止它使用strack跟踪(由日志监控软件等获取)来污染日志文件而不重构所有内容?无论如何,处理这个问题的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

您当然可以在Spring中处理异常,您不需要让它们冒泡到web.xml中的处理程序。请参阅this article中的一些示例。

答案 1 :(得分:0)

所以这就是我现在所得到的,不是理想的,而是有点作品:

   @Override
   public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
      try {
         doFilterInternal(servletRequest, servletResponse, filterChain);
      } catch (MyVerySpecificSamlAuthException ex) {
         HttpServletRequest request = (HttpServletRequest)servletRequest;
         RequestDispatcher requestDispatcher = request.getRequestDispatcher("/general_error.jsp");
         request.setAttribute(RequestDispatcher.ERROR_MESSAGE, ex.getMessage());
         requestDispatcher.forward(request, servletResponse);
      }
   }