有没有一种方式,当通过pipe理界面手动重新加载应用程序时,tomcat 7会使应用程序的所有会话失效?
一切顺利,托马斯
请参阅标准pipe理器实现 ,在引导之前,应将pathName设置为空string或删除SESSIONS.ser。
从Tomcat文档:
坚持跨越重启
每当Apache Tomcat正常closures并重新启动,或者应用程序重新加载被触发时,标准的Manager实现将尝试将所有当前活动的会话序列化到通过pathname属性定位的磁盘文件。 当应用程序重新加载完成时,所有这些保存的会话将被反序列化并激活(假设它们还没有同时过期)。
为了成功恢复会话属性的状态,所有这些属性必须实现java.io.Serializable接口。 您可以通过将元素包含在Web应用程序部署描述符(/WEB-INF/web.xml)中来使pipe理器强制执行此限制。
禁用会话持久性
如上所述,默认情况下,每个Web应用程序都configuration了标准pipe理器实现,并在重新启动时执行会话持久性。 要禁用此持久性function,请为您的Web应用程序创build一个上下文configuration文件,并在其中添加以下元素:
<Manager pathname="" />
http://tomcat.apache.org/tomcat-7.0-doc/config/manager.html#Persistence_Across_Restarts
如果你还没有META-INF / context.xml文件,你可以使用这个文件:
<Context> <Manager pathname="" /> </Context>