【发布时间】:2012-04-04 17:27:11
【问题描述】:
我已经使用 Spring MVC 实现了一个 Web 应用程序。 Web 应用程序集成在具有桌面用户界面的系统中。我想允许用户从 destkop GUI 关闭 Web 应用程序的会话。
我尝试实现一个不太优雅的解决方案:调用 httpsession 的 invalidate 但有时在正在运行的 http 请求中使用正在失效的会话时它会中断。当它试图调用渲染(特别是在 WebUtil.getSessionAttribute)时,它会在 DispatcherServlet 处引发 IllegalStateException,因为它试图访问会话属性并且会话已经无效。
所以我的问题是:有什么方法可以从非 http-request 线程中将用户从会话中踢出,而不会与运行 http 请求发生冲突?或者至少是我可以处理的冲突。
谢谢,
豪尔赫
【问题讨论】:
-
嗯,我知道你可以通过 JMX 获取一些 Session 信息,例如阿帕奇雄猫。您可以使用 JMX 控制台检查您的应用程序服务器/servlet 容器。如果有可能结束会话,您可以通过编程方式使用 JMX API。
-
谢谢@fas。我将看看 JMX API。无论如何,我想独立于 Web 应用程序服务器使用它。所以让我们看看是否有人也知道其他选择。
标签: web-applications servlets spring-mvc session-state httpsession