Olá pessoal,
estou seguindo a apostila da caelum para aprender a usar o VRaptor, mas logo no primeiro exemplo com a anotação @Component já está dando errado.
As minhas classes são as seguintes:
//imports…
public class CriadorDeSession {
public static Session getSession() {
Configuration configuration = new Configuration();
configuration.configure();
SessionFactory factory = configuration.buildSessionFactory();
Session session = factory.openSession();
return session;
}
//imports…
import br.com.caelum.vraptor.ioc.Component;
@Component
public class ProdutoDao {
private final Session session;
public ProdutoDao(){
this.session = CriadorDeSession.getSession();
}
public void salva(Produto produto) {
Transaction tx = this.session.beginTransaction();
session.save(produto);
tx.commit();
}
public List<Produto> listaTudo() {
return this.session.createCriteria(Produto.class).list();
}
}
}
//imports…
@Resource
public class ProdutosController {
private ProdutoDao dao;
public ProdutosController(ProdutoDao dao){
this.dao = dao;
}
public List<Produto> lista() {
return dao.listaTudo();
}
}
e tem o jsp na pasta WEB-INF/jsp/produtos/lista.jsp
…
| Nome | Descrição | Preço |
|---|---|---|
| ${produto.nome } | ${produto.descricao } | ${produto.preco } |
Quando eu tento chamar o jsp do browser a seguinte exception é lançada:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘produtosController’ defined in file [C:\Users\jaqs\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\vraptor-blank-project\WEB-INF\classes\br\com\caelum\vraptor\controller\ProdutosController.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.caelum.vraptor.dao.ProdutoDao]: : Error creating bean with name ‘produtoDao’ defined in file [C:\Users\jaqs\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\vraptor-blank-project\WEB-INF\classes\br\com\caelum\vraptor\dao\ProdutoDao.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.dao.ProdutoDao]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: org.hibernate.cfg.annotations.reflection.XMLContext$Default.getDelimitedIdentifier()Ljava/lang/Boolean;; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘produtoDao’ defined in file [C:\Users\jaqs\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\vraptor-blank-project\WEB-INF\classes\br\com\caelum\vraptor\dao\ProdutoDao.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.vraptor.dao.ProdutoDao]: Constructor threw exception; nested exception is java.lang.NoSuchMethodError: org.hibernate.cfg.annotations.reflection.XMLContext$Default.getDelimitedIdentifier()Ljava/lang/Boolean;
org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:698)
org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:192)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:984)
Alguém pode me ajudar?
Obrigada 