我有一个jaxws中的webservice,我可以在登录后连接到它。一切正常,我通过登录名和密码登录,并且正在为WS服务器上的此用户创建会话。毕竟我想注销,所以我删除所有的会话属性,我打电话session.invalidate()。在调用session.invalidate后,Tomcat不会使会话失效()
属性被删除,但是当我进入tomcat管理器时,我看到会话仍然存在。
当我登录时,会话已将setMaxInactiveInterval设置为7200秒(2小时)。会话将在这段时间之后被销毁,但是如果该会话不再使用,保持空会话保持2小时的意义是什么。
是否有办法彻底销毁该会话?不等2小时?
因此,您有某种“注销”Web服务请求?您不应该删除会话属性:如果您使会话无效,应该为您完成。你有没有注册任何HttpSessionListener或HttpSessionBindingListener对象?如果是这样,他们可能会干扰Tomcat实际到期会话的能力。你不必等待2个小时。 –
我没有注册这两个听众中的任何一个。是的,它是某种注销。我知道我不应该等待2个小时,但仍然是活动。我将删除从会话中删除属性的部分。 –
当前在disconnect()方法中,我有session.setMaxInactiveInterval(1),会话在30s - 1min后被销毁,这比2小时更好,但我确定这是不好的解决方案。如果我将此方法添加session.invalidate(),则会话将在30分钟后过期。我不知道它为什么会发生,Session应该被销毁,但它不是:/ –