Glassfish过滤器init多次调用

时间:2011-06-22 11:46:14

标签: java glassfish

我使用Glassfish 3.0.1 build 22来运行自定义webapp。出于身份验证的目的,我使用的是自定义Filter,它有一个init()方法:

public class MyFilter extends HttpServlet implements Filter

  public void init(FilterConfig filterConfig) throws ServletException { ..// dostuff }

通常在启动时调用init()方法一次。现在我有一个奇怪的情况,init()方法被多次调用。我无法找到解释。

是什么导致这种情况?

1 个答案:

答案 0 :(得分:0)

我正在运行Glassfish 3.1.1 build 12。

我有一个HttpServlet,Glassfish在每次请求时都会调用#init(ServletConfig),可能与您遇到的情况类似。

事实证明我在我的servlet中覆盖了该方法但未能调用super.init(servletConfig)。将调用添加到超类的方法后,Glassfish只按预期调用了一次init方法。

我想知道你为什么要实施Filter而是延长HttpServlet?您是否可能没有正确初始化超类,Glassfish会以某种方式检测到这种情况并尝试再次调用init?