VRaptor - Problema na utilização do VRaptorRequestHolder - NullPointer

Bom Dia Pessoal,

Estou tentando utilizar o VRaptorRequestHolder na aplicação mas estou recebendo NullPointerException ao executar o comando VRaptorRequestHolder.currentRequest() não sei o que pode ser, o Bean que estou utlizando para chamar está anotado com

@Component
@SessionScoped
@org.springframework.stereotype.Component

(a última anotação preciso pois estou utilizando Spring 3 na aplicação também).

Se alguém puder me ajudar

Você não precisa da anotação do spring, se você estiver usando o VRaptor 3.3.x. Na última versão você pode usar esse componente nos componentes do spring sem problema…

Pode ser que com a anotação do Spring ele crie outra instância do mesmo componente, só que no escopo singleton, e você esteja usando esse componente num contexto fora do request.

o VRaptorRequestHolder usa threadlocal pra controlar a request, se o componente rodar em outra thread pode dar null pointer também…

tente receber o request diretamente como dependência, marcando-o como scoped-proxy

Evite usar ThreadLocal. Não vale a pena. Use algo mais inteligente como injetar um request como o Lucas falou.

Bom Dia,

E como eu faria isso? Injetar o request???

Obrigado.

no construtor!

@Component
@SessionScoped
//não coloque o @Component do spring
public class SuaClasse {

   public SuaClasse(HttpServletRequest request) {
         this.request = request;
   }
}

se isso não funcionar, pq o componente é session scoped, tente fazer isso:

@Component
@SessionScoped
//não coloque o @Component do spring
public class SuaClasse {

   @Scope(proxyMode=ScopeProxyMode.INTERFACES)
   public void setRequest(HttpServletRequest request) {
         this.request = request;
   }
}