最近写网页,发现session只要一分钟就会失效(取不出存在session里的值),设置了session的最大不活动时间为30分钟,但是依然过一分钟session就失效了,然后给session加了生死监听,确实要过30分钟,session上的监听器的销毁方法才启动,百思不得其解为啥 session里的值,我咋获取不到了。。。
后来终于找到原因了,原来是我在tomcat设置了session的钝化时间为1分钟,但是我的session没有实现序列化接口,所以session一钝化就GG 了,然后我找到tomcat的配置文件context.xml,把下述配置删掉即可:
<Manager className="org.apache.catalina.session.PersistentManager" maxIdleSwap="1">
<Store className="org.apache.catalina.session.FileStore" directory="mysession"/>
</Manager>
其中 maxIdleSwap=”1” 的意思是一分钟不操作session,session就钝化。
本文介绍了一位开发者在使用Tomcat部署Web应用时遇到的Session钝化问题。问题表现为Session仅在一分钟后就失效,尽管已设置最大不活动时间为30分钟。经过排查,发现是由于Tomcat配置中Session钝化时间设置为1分钟且Session未实现序列化导致。通过调整Tomcat配置解决了该问题。
3061

被折叠的 条评论
为什么被折叠?



