приложение или сеанс недоступны для фонового потока - PullRequest
0 голосов
/ 06 декабря 2018

Среда разработки

java + Wicket + hibernate + spring

Описание

веб-сеанс недоступен в методе @Async при его вызове из пользовательского интерфейса.

У меня есть кнопка на странице, когда пользователь нажимает кнопку, она вызывает метод importContactInBackground.

Конфигурация Spring xml

<task:annotation-driven executor="commonTaskExecutor"/>
<task:executor id="commonTaskExecutor" pool-size="5-10" queue-capacity="20"/>

@ Асинхронный метод в классе бина

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

Исключение

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)

1 Ответ

0 голосов
/ 07 декабря 2018

Я нашел что-то здесь Работа с фоновыми заданиями и это работает

...