Witam.
Jak w najnowszej wersji Spring'a uzyskiwać dostęp do beanów - w moim przypadku o zasięgu request - z poziomu kolejnego (nie głównego) wątku?
To:
@Component
@Scope(value=WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class A{
@Autowired
B bInstance;
[...]
AsyncTaskExecutor executor = new ConcurrentTaskExecutor();
executor.execute(bInstance);
i:
@Component
@Scope(value=WebApplicationContext.SCOPE_REQUEST, proxyMode = ScopedProxyMode.TARGET_CLASS)
public class B{
[...]
@Autowired
C cInstance;
[...]
c.jakasMetoda();
Wyrzuca wyjątek:
java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
Jak to obejść? Na Stackoverflow doradzali dodać do deskryptora wdrożenia listener RequestContextListener, ale to u mnie nie działa.