Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 拦截摧毁法_Java_Struts2 - Fatal编程技术网

Java 拦截摧毁法

Java 拦截摧毁法,java,struts2,Java,Struts2,我在struts2中创建了一个身份验证拦截器。 我必须检查拦截器方法何时被调用。 所以我在控制台上打印了方法名。 这是我的代码 public class AuthenticationInterceptor implements Interceptor { @Override public void destroy() { System.out.println("AuthenticationInterceptor destroy"); } @Override public void

我在struts2中创建了一个
身份验证拦截器。
我必须检查拦截器方法何时被调用。
所以我在控制台上打印了方法名。 这是我的代码

public class AuthenticationInterceptor implements Interceptor {

@Override
public void destroy() {
    System.out.println("AuthenticationInterceptor destroy");

}

@Override
public void init() {
     System.out.println("AuthenticationInterceptor init");

}

@Override
public String intercept(ActionInvocation actionInvocation) throws Exception    {
    System.out.println("AuthenticationInterceptor intercept");
    return actionInvocation.invoke();
   }
} 
这是我在struts.xml中的包。

<package name="portfolioSecure" namespace="/secure" extends="portfolio">
<interceptors>
<interceptor name="authenticationInterceptor" class="ask.portfolio.utility.AuthenticationInterceptor"></interceptor>
<interceptor-stack name="secureStack">
<interceptor-ref name="authenticationInterceptor"></interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>

</interceptor-stack>
</interceptors>
<default-interceptor-ref name="secureStack"></default-interceptor-ref>
    <action name="login" class="ask.portfolio.actions.Login">
        <result name="success">/loginSuccess.jsp</result>
        <result name="error">/welcome.jsp</result>
    </action>
</package>

/loginsAccess.jsp
/welcome.jsp
当我的应用程序启动时,AuthenticationInterceptor init在控制台上打印
同样地,身份验证侦听器拦截也会打印。但是,身份验证侦听器销毁即使我停止服务器也不会打印
我想知道何时调用interceptors destroy method,以及interceptor中的后处理与destroy method()有关。

当容器或应用程序停止或取消部署时,destroy方法只调用一次。它调用以让拦截器清理它分配的任何资源。

您使用的是哪个版本的struts2?这是一个已知的问题,如果我记得的话,已经在版本2.1.3左右修复