Pessoal, estou tendo um problema que não consigo identificar.
Tenho um ComponentFactory que cria a sessão com o banco de dados. Acontece que o método está sendo invocado duas vezes e não consigo resolver esse problema.
Portanto, peço a ajuda do pessoal do VRaptor.
Segue código da classe:
@Component
@RequestScoped
public class DbSessionCreator implements ComponentFactory<DbSession> {
private DbSessionFactory dbSessionFactory;
private DbSession dbSession;
public DbSessionCreator(DbSessionFactory dbSessionFactory) {
this.dbSessionFactory = dbSessionFactory;
}
@PostConstruct
public void create() {
// PROBLEMA!! Este método está sendo invocado duas vezes para cada requisição!!!
this.dbSession = this.dbSessionFactory.getNewDBSession();
Logger.getLogger(this.getClass()).info("Adicionando conexão do contexto!!");
}
public DbSession getInstance() {
return this.dbSession;
}
@PreDestroy
public void destroy() {
// PROBLEMA!! Este método está sendo invocado duas vezes para cada requisição!!!
Logger.getLogger(this.getClass()).info("Removendo conexão do contexto!!");
this.dbSession.close();
}
}
Log:
03:04:51,560 DEBUG [VRaptor ] VRaptor received a new request
03:04:51,560 DEBUG [PicoComponentRegistry] There's no @SessionScoped component, so skipping session container creation
03:04:51,585 DEBUG [PicoComponentAdapter] New adapter for br.com.bruno.business.vraptor.integration.DbSessionCreator
03:05:00,326 INFO [DbSessionCreator ] Adicionando conexão do contexto!!
03:05:00,661 INFO [DbSessionCreator ] Adicionando conexão do contexto!!
...
03:05:03,004 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ForwardToDefaultViewInterceptor
03:05:03,004 DEBUG [ForwardToDefaultViewInterceptor] Request already dispatched and commited somewhere else, not forwarding.
03:05:03,489 INFO [DbSessionCreator ] Removendo conexão do contexto!!
03:05:04,010 INFO [DbSessionCreator ] Removendo conexão do contexto!!
03:05:04,011 DEBUG [VRaptor ] VRaptor ended the request