Erro ao tentar executar exemplo da apostila do Vraptor - injeção de dependências

6 respostas
L

Boa noite gente, estou tentando aprender a utilizar o Vraptor, sou iniciante em java e no framework.
Bom, estou seguindo a apostila do curso fj-28 da caelum, e ao tentar rodar o exemplo de listagem de produtos, não funciona,
seguem os códigos das minhas classes:

ProdutoDao:

package br.com.vraptor.dao;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.caelum.vraptor.ioc.Component;
import br.com.vraptor.domain.Produto;
import br.com.vraptor.infra.CriaSession;

@Component
public class ProdutoDao {

	private final Session session;	

	public ProdutoDao() {
		super();
		this.session = CriaSession.getSession();
	}


	public void salva(Produto produto) {

		Transaction tx = session.beginTransaction();

		session.save(produto);

		tx.commit();
	}
	
	
	public List<Produto> listaTudo(){
		return this.session.createCriteria(Produto.class).list();
	}

}

e o meu ProdutosController:

package br.com.vraptor.controller;

import java.util.List;

import br.com.caelum.vraptor.Resource;
import br.com.vraptor.dao.ProdutoDao;
import br.com.vraptor.domain.Produto;


@Resource
public class ProdutosController {
	
	private final ProdutoDao dao;
	
	public ProdutosController(ProdutoDao dao){
		this.dao = dao;
	}
	
	public List<Produto> lista(){
		
		return dao.listaTudo();		
	}

}

ao acessar o url /produtos/lista, eu recebo a seguinte mensagem de erro:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name produtosController: Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.vraptor.dao.ProdutoDao]: : Error creating bean with name produtoDao: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.vraptor.dao.ProdutoDao]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/hibernate/Session; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name produtoDao: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.vraptor.dao.ProdutoDao]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/hibernate/Session

org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:730)

org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1003)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:907)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:485)

org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)

org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:329)

org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43)

org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:325)

org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:263)

org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1083)

br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.instanceFor(SpringBasedContainer.java:86)

br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:46)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)

br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)

br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)

br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)

br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)

br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)

br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)

Bom gente, me desculpem a mensagem longa, mas acho que sem essas informações seria difícil me ajudarem, obrigado.

6 Respostas

zoren

Could not instantiate bean class [br.com.vraptor.dao.ProdutoDao]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/hibernate/Session

Falta o jar do hibernate

L

Dei uma conferida, está com os jars e devidamente adicionados ao classpath, estou utilizando o vraptor-blank-project, fornecido pela caelum no site do vraptor.

Lucas_Cavalcanti

o blank-project não tem os jars do hibernate. Dá uma olhada no zip do vraptor, que tem isso nos opcionais, ou baixe direto do site do hibernate.

L

O meu projeto está com as jars do hibernate 3, hibernate jpa e hibernate validator adicionadas ao build path !

Lucas_Cavalcanti

não basta colocar no build path… deveria estar em WEB-INF/lib

Edifran

Eu estava com esse problema também, e realmente era era a falta dos jar do hibernate na pasta /lib que impediam a continuidade da apostila.

Valeu pessoal.

Criado 10 de novembro de 2011
Ultima resposta 29 de mai. de 2012
Respostas 6
Participantes 4