¿Cómo usar Http.Context.current () en una promesa en juego?
En Play Framework 2.2.2, me gustaría devolver una promesa. Sin embargo, estoy llamando a una función que necesita acceso a las variables almacenadas enHttp.Context.current()
(el usuario conectado actualmente, la conexión JPA ...).
Por supuesto, dado que Promise se ejecuta en otro hilo, no tiene acceso aHttp.Context.current()
. ¿Puedo conservarlo en la Promesa o debo restaurarlo manualmente? ¿Hay otro patrón que debería usar?
Ejemplo:
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));
}
});
}