2017-10-20 107 views
0

我的项目使用自定义会话失效机制。它要求发送具有无效原因的通知,例如 - 如果用户请求发生失效 - 无效原因是USER_REQUEST,如果服务器关闭 - 则原因是SHUTDOWN。 除关闭情况外,所有的工作都很好 - tomcat本身使所有会话都失效(至少StandardManager是这样)。强制tomcat不要在关机时使会话无效

据我知道 - 我可以创建自己的经理,这一点儿也不无效会话都:

public class HttpSessionManager extends StandardManager { 

    @Override 
    protected synchronized void stopInternal() throws LifecycleException { 
     setState(LifecycleState.STOPPING); 
     if (sessionIdGenerator instanceof Lifecycle) { 
      ((Lifecycle) sessionIdGenerator).stop(); 
     } 
    } 
} 

此类应放在一些jar文件,并放置在Tomcat的/ lib文件夹中。 事实上,该解决方案需要为主Tomcat分配额外的库以及主要解决方案,这并不好(交付过程变得复杂)

应该有另一种方法来做到这一点,或者我的解决方案可以改进某种方式。

回答

0

经过漫长而深入的谷歌搜索这个问题 - 我可以说没有别的办法做这样的事情。