2017-10-20 76 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

經過漫長而深入的谷歌搜索這個問題 - 我可以說沒有別的辦法做這樣的事情。