Como obter uma dependencia do vraptor dentro de um servlet filter?

1 resposta
ThiagoInGuj

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?

1 Resposta

Lucas_Cavalcanti

Duplicado:

http://www.guj.com.br/2372-como-obter-uma-dependencia-do-vraptor-dentro-de-um-servlet-filter

Criado 26 de junho de 2013
Ultima resposta 26 de jun. de 2013
Respostas 1
Participantes 2