Usando la anotación @Async, quiero llamar a un método en un hilo diferente que tiene acceso a las clases de alcance Session y Request.

Sin embargo, cuando ApplicationContext intenta obtener el bean, se genera la siguiente excepción:

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.sessionInfoClass': Scope 'session' is not active for the current thread;

Intenté extender la clase ApplicationContextAware para contener el contexto del hilo principal.

También probé la solución sugerida de esta pregunta Cómo habilitar el alcance de la solicitud en el ejecutor de tareas asíncronas

El código fuente está en Github

https://github.com/saavedrah/spring-threadSample

0
saavedrah 3 oct. 2019 a las 06:43

1 respuesta

La mejor respuesta

He creado una solicitud de extracción para su repositorio que resuelve el problema.

Básicamente, extendí esta solución también para el caso Runnable.

Para verificarlo, ejecute la clase ThreadSampleApplication y luego presione http: // localhost: 8080 / testAsync

1
user10871691user10871691 3 oct. 2019 a las 07:34