Grails应用程序中的HttpSession

use*_*463 3 java grails httpsession

在我在tomcat 7上运行的grails应用程序中,某处我无效现有的http session(session.invalidate())并创建一个新的session(request.getSession(true)).

但我的这个新会议并没有在grails应用程序中随处反映出来.因此我得到' Session already invalidated'.

我不想request.getSession()到处做.我只是在使用'session'.

Grails 1.3.7中有什么内容,所以这个新会话会反映在应用程序的每个位置.

如果您需要更多信息,请告诉我.

问候

Sud*_*r N 5

好吧,Grails保存对会话对象的引用,每次你要求它进行会话时它返回相同的引用..所以如果你使会话无效然后请求会话它将返回相同的无效会话,并导致'session已经失效的'例外..

这对你有用..

执行session.invalidate之后执行以下行

//Trick - so that grails doesn't use old invalidated session but rather create new.
GrailsWebRequest.lookup(request).session = null
Run Code Online (Sandbox Code Playgroud)

之后,您可以像平常一样使用会话..您不需要自己创建新会话

请参阅此线程以获取内部信息