I have the spring mvc app which works great. I have a bean X which has the following declaration
@Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS)
I need to create a background cron job. I have added a threadPool and @Scheduled annotation to my new bean which is using dependency bean X.
When my cron task is started by Spring I get this exception:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.X': Scope 'request' is not active for the current thread; consider defining a scoped proxy for this bean if you intend to refer to it from a singleton; nested exception is 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.
I understand that my bean X will be injected only by DispatcherServlet.
My question is how to fix this behaviour?