там сеанс областью действия боб «Identity», который я впрыскивается в @Stateless боба, который реализует Runnable:Есть ли способ распространения SessionContext на новый поток (получение WELD-001303)?
@Stateless
@LocalBean
public class Test implements Runnable {
@Inject
Identity identity;
@Inject
Logger log;
@Override
public void run() {
log.warn("Test: " + this + " " + identity.getAccount().getId());
}
}
Там же боб, который вызывает выше Runnable асинхронно:
@Stateless
@LocalBean
public class BeanContextExecutor implements Executor {
@Asynchronous
@Override
public void execute(Runnable command) {
command.run();
}
}
и, наконец, призывание выглядит следующим образом:
@Stateless
public class OtherBean {
@Inject
BeanContextExecutor executor;
...
executor.execute(command);
...
}
При запуске этого я получаю следующее сообщение об ошибке:
...
Caused by: org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active contexts for scope type javax.enterprise.context.SessionScoped
...
Есть ли способ распространить SessionContext на фоновый поток?
Я также попытался отправить этот Runnable в ManagedExecutorService и даже создать прокси для него с помощью ContextService и отправить прокси-сервер, но все равно получить ту же ошибку.
Спасибо за любую помощь!