Problema com VRaptor 3.2 + Spring 3.0.5 [RequestContextListener]

Bom Dia a todos,

Sou novo utilizando VRaptor e estou com um probleminha, coisa simples. Na minha aplicação estou precisando utilizando a Classe org.springframework.web.context.request.RequestContextHolder porém ao registrar o Listener abaixo recebo um erro ao tentar acessar uma páginas que segue.

Tentei procurar algum listener no VRaptor que faria o mesmo papel mas não obtive sucesso.

Se alguém puder ajudar agradeço.

Listener

<listener>
	<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>

Erro
08:32:55,313 DEBUG [SecurityContextPersistenceFilter] SecurityContextHolder now cleared, as request processing completed
Feb 24, 2011 8:32:55 AM org.apache.catalina.core.ApplicationContext log
SEVERE: Unhandled exception occurred whilst decorating page
java.lang.NullPointerException
at br.com.caelum.vraptor.http.DefaultResourceTranslator.translate(DefaultResourceTranslator.java:48)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:64)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)
at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:47)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:368)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:177)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:187)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:380)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:169)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)

basta tirar esse Listener, o próprio VRaptor faz esse trabalho:


[]'s

Bom Dia Lucas,

Não entendi bem a resposta, a Classe ‘SpringProvider’ tem que ser registrada ou configurada em algum lugar, ou basta apenas eu utilizar a classe ‘RequestContextHolder’ diretamente? Caso a resposta seja a segunda, eu até que tentei mas dá null pointer para o método ‘RequestContextHolder.currentRequestAttributes()’.

Desde já agradeço a ajuda.

não precisa registrar a classe, ela faz parte do processo do vraptor…

onde vc está usando esse RequestContextHolder?

Então,

Estou utilizando ele em uma classe Utils que retorna as informações de um request pra mim. Mas como eu devo utilizar a classe SpringProvider essa é a minha dúvida.

Att,
Isaque

vc não precisa da SpringProvider

onde vc está usando essa classe Utils? é dentro de um @Component, @Resource ou @Intercepts?

Hum tái deve ser isso, não tá anotada com nenhum deles então não está no contexto do Spring. Pode ser isso.

Ok, vou fazer um teste.

Obrigado

se estiver no contexto do spring ou do VRaptor vc pode considerar receber o HttpServletRequest direto no construtor, sem precisar desses Holders

Eu estou com o mesmo problema, alguém chegou numa solucação?

que versões do VRaptor e do spring?

vraptor versão 3.5.3 e do versão do spring 3.2.3

Estou usando vraptor 3.5.3 e o spring security, o problema que dentro do método authenticate do AuthenticationProvider, eu preciso pegar o HttpServletRequest normalmente eu faria assim RequestContextHolder.currentRequestAttributes()).getRequest() mas para isso precisava registrar o listener org.springframework.web.context.request.RequestContextListener no web.xml aí dar conflito com o vraptor.

Lucas eu acabei fazendo um outro tópico porque o problema não exatamente o mesmo.

http://www.guj.com.br/17905-vraptor-e-authenticationprovider