Boa tarde, estou com dificuldades em obter uma dependencia do vraptor com escopo de request no meu servlet filter. Já tentei assim:
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
CacheControl cacheControl = (CacheControl) request.getAttribute("cacheControl");
}
e assim:
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain) throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
CacheControl cacheControl = (CacheControl) context.getBean("cacheControl");
}
onde context, no segundo exemplo, é obtido através da chamada a WebApplicationContextUtils.getWebApplicationContext(filterConfig.getServletContext()); no método init do meu filtro.
OBS: Quando o CacheControl é anotado como escopo de application ou prototype, funciona corretamente com o context.getBean, mas quando está com o escopo de request não funciona
pois o spring diz que não existe httpServletRequest na thread corrente. O erro é:
“Error creating bean with name ‘cacheControl’: Scope ‘request’ is not active for the current thread; bla bla bla”
“No thread-bound request found: Are you referring to request attributes outside of an actual web request, bla bla bla”
Tem como eu acessar esse objeto dentro do meu filter?