Как использовать Http.Context.current () в Promise in Play?
В Play Framework 2.2.2 я хотел бы вернуть обещание. Однако я вызываю функцию, которой нужен доступ к переменным, хранящимся вHttp.Context.current()
(текущий зарегистрированный пользователь, соединение JPA ...).
Конечно, поскольку Promise выполняется в другом потоке, он не имеет доступа кHttp.Context.current()
, Могу ли я сохранить его в Обещании или восстановить вручную? Есть ли другой шаблон, который я должен использовать?
Пример:
public static Promise<Result> getAvailableServices() {
return new Promise.promise(new Function0<Result>(){
@Override
public Result apply() throws Throwable {
// Long operation
List<Services> data = buildResult();
// Render the template
// (The header of the template requires access to
// Http.Context.current().args.get("usermodel"))
return Results.ok(services_template.render(services));
}
});
}