I've enabled async into my spring boot application:
@Configuration
@EnableAsync
public class BackOfficeConfiguration {}
and I've created this async method:
@Async
public void importDocuments() {}
importDocuments
code is just:
@Async
public void importDocuments() {
// Do something
// Get current request context
ServletRequestAttributes requestAttributes =
(ServletRequestAttributes) RequestContextHolder.currentRequestAttributes();
HttpServletRequest request = requestAttributes.getRequest();
}
On RequestContextHolder.currentRequestAttributes()
, spring boot is getting me this exception:
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.
How could I get current HttpServletRequest
inside an async method?