Problema com VRaptor 3.2 + Spring 3.0.5 [RequestContextListener]

11 respostas
IAX

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)

11 Respostas

Lucas_Cavalcanti

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


[]'s

IAX

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.

Lucas_Cavalcanti

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

onde vc está usando esse RequestContextHolder?

IAX

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

Lucas_Cavalcanti

vc não precisa da SpringProvider

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

IAX

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

Lucas_Cavalcanti

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

abraaoinfo

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

Lucas_Cavalcanti

que versões do VRaptor e do spring?

abraaoinfo

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.

abraaoinfo

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

Criado 24 de fevereiro de 2011
Ultima resposta 3 de abr. de 2014
Respostas 11
Participantes 3