【发布时间】:2013-09-17 03:55:33
【问题描述】:
我是 Groovy 的新手。我想在 Groovy 线程中更新会话变量。 我不能放真正的代码,所以我放示例代码。
public updatename()
{
println(session["firstname"]);
Thread.start
{
session["firstname"] = "atul";
println(session["firstname"]);
}
}
我可以在线程外访问会话变量,但在线程内的会话中出现以下错误
“错误 java.lang.IllegalStateException:未找到线程绑定请求: 您是否指的是实际网络之外的请求属性 请求,或处理原始接收之外的请求 线?如果您实际上是在 Web 请求中操作并且仍然 收到此消息,您的代码可能在 DispatcherServlet/DispatcherPortlet:在这种情况下,使用 RequestContextListener 或 RequestContextFilter 暴露当前 请求。”
知道如何在线程中使用会话变量
【问题讨论】:
-
我猜您正在控制器中尝试此操作,根据非常清晰的错误消息,我认为这不会起作用。相反,您可以将该逻辑移至服务并尝试。我宁愿建议您使用Executor plugin 来实现您尝试使用 Thread 实现的目标。
-
谢谢 dmahapatro。我会查看您提供的链接
-
@dmahapatro,我使用了执行器插件,在单独的线程中使用标记库时发现了同样的问题,我通过制作简单的 DTO 并将其传递给异步块来解决它。