Pessoal, me ajudem aí… meu projeto esta apresentando um erro que não estou conseguindo resolver! Estou usando Hibernate e VRaptor
Olhem o erro que aparece no browser:
Classe CriadorDeFactory
package br.com.caelum.goodbuy.infra;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
import br.com.caelum.vraptor.ioc.ApplicationScoped;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.ComponentFactory;
@Component
@ApplicationScoped
public class CriadorDeSessionFactory implements ComponentFactory<SessionFactory>{
private SessionFactory factory;
@PostConstruct
public void abre(){
AnnotationConfiguration configuration = new AnnotationConfiguration();
configuration.configure();
this.factory = configuration.buildSessionFactory();
}
public SessionFactory getInstance() {
return factory;
}
@PreDestroy
public void fecha(){
this.factory.close();
}
}
Classe CriadorDeSession
package br.com.caelum.goodbuy.infra;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import br.com.caelum.vraptor.ioc.Component;
import br.com.caelum.vraptor.ioc.ComponentFactory;
@Component
public class CriadorDeSession implements ComponentFactory<Session>{
private final SessionFactory factory;
private Session session;
public CriadorDeSession(SessionFactory factory){
this.factory = factory;
}
@PostConstruct
public void abre(){
this.session = factory.openSession();
}
public Session getInstance() {
return null;
}
@PreDestroy
public void fecha(){
this.session.close();
}
}
Classe ProdutoController
package br.com.caelum.goodbuy.controller;
import java.util.List;
import org.hibernate.Session;
import br.com.caelum.goodbuy.dao.ProdutoDao;
import br.com.caelum.goodbuy.modelo.Produto;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
@Resource
public class ProdutosController {
private final ProdutoDao dao;
private final Result result;
public ProdutosController(ProdutoDao dao, Result result){
this.dao = dao;
this.result = result;
}
public List<Produto> lista(){
return dao.listaTudo();
}
public void adiciona(Produto produto){
dao.salva(produto);
result.redirectTo(ProdutosController.class).lista();
}
public void formulario(){
}
public Produto edita(Long id){
return dao.carrega(id);
}
public void altera(Produto produto){
dao.atualiza(produto);
result.redirectTo(ProdutosController.class).lista();
}
public void remove(Long id){
Produto produto = dao.carrega(id);
dao.remove((Session) produto);
result.redirectTo(ProdutosController.class).lista();
}
}
Help…