首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >应用程序或会话对后台线程不可用

应用程序或会话对后台线程不可用
EN

Stack Overflow用户
提问于 2018-12-06 11:29:44
回答 1查看 125关注 0票数 0

开发环境

java + Wicket + hibernate + spring

描述

从ui调用@Async方法时,该方法中的web会话不可用。

我在页面中有一个按钮,当用户单击该按钮时,它将调用"importContactInBackground“方法。

Spring xml配置

代码语言:javascript
复制
<task:annotation-driven executor="commonTaskExecutor"/>
<task:executor id="commonTaskExecutor" pool-size="5-10" queue-capacity="20"/>

bean类中的@Async方法

代码语言:javascript
复制
@Async
public void importContactInBackground(File file)
{
    importService.import(file);
    CustomSession customSession = (CustomSession)Session.get();//throws exception
    LOGGER.info("Contacts are imported by {}", customSession.getUsername());
}

异常

代码语言:javascript
复制
org.apache.wicket.WicketRuntimeException: There is no application attached to current thread commonTaskExecutor-2
at org.apache.wicket.Application.get(Application.java:235)
at org.apache.wicket.Session.get(Session.java:175)
EN

回答 1

Stack Overflow用户

发布于 2018-12-07 12:58:03

我在这里找到了一些东西,working-with-background-jobs,它起作用了

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53644212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档