我想执行一项简单的任务!但不知道是否可能!
我有一个实现Runnable的groovy类,它一直在使用ThreadPool运行!我想在Runnable类中做的事情如下:
public void run() {
EventPhoto.withTransaction { status ->
EventPhoto photo = new EventPhoto(event:eventInstance)
photo.imageUrl = "${resource(dir:'images/uploads',file:image.name, absolute:true)}"
photo.thumbnailUrl = "${resource(dir:'images/uploads',file:thumb.name, absolute:true)}"
}
}
问题是,由于我的线程没有在webrequest中运行,我收到以下错误:
java.lang.IllegalStateException:找不到线程绑定请求:是 您指的是实际Web请求之外的请求属性, 或处理原始接收线程之外的请求?如果 您实际上是在Web请求中运行并仍然收到此信息 消息,你的代码可能在外面运行 DispatcherServlet / DispatcherPortlet:在这种情况下,请使用 RequestContextListener或RequestContextFilter公开当前 请求。
那么无论如何仍然使用$ resource()??
感谢
答案 0 :(得分:1)
Here is some information将告诉你如何完成你想要做的事情。另请注意,它建议您所做的是糟糕的设计。
答案 1 :(得分:0)
默认情况下,您的后台线程不能访问用于保留Photo的Hibernate会话。您可以使用Executor之类的插件在后台线程中保存域对象。