Vraptor - Duvidas no FJ-28

3 respostas
Lucas_Sorrentino

Olá a todos…
Estou começando no Java, fiz alguns cursos na Caelum e comecei a fazer o projeto do FJ-28, disponibilizado no site… tudo ia bem até eu entrar na parte do Controlador com o Vraptor… Goataria de uma ajuda… segue abaixo minhas classes controller e Dao, e o erro que estou recebendo:

Classe Controller:
package br.com.caelum.goodbuy.controller;

import java.util.List;

import br.com.caelum.goodbuy.dao.ProdutoDAO;

import br.com.caelum.goodbuy.modelo.Produto;

import br.com.caelum.vraptor.Resource;

@Resource
public class ProdutosController {

private final ProdutoDAO dao;

public ProdutosController(ProdutoDAO dao){
	this.dao = dao;
}

	public List<Produto> lista(){
		return dao.listaTudo();
}

}

Classe DAO:

package br.com.caelum.goodbuy.dao;

import java.util.List;

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

import br.com.caelum.goodbuy.infra.CriadorDeSession;

import br.com.caelum.goodbuy.modelo.Produto;

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 = session.beginTransaction();
	session.save(produto);
	tx.commit();
}
public void altera(Produto produto) {  
		Transaction tx = session.beginTransaction();
		session.update(produto);
		tx.commit();
}

public Produto procura(Long id) {
	Produto produto =(Produto)session.load(Produto.class, 1L);
	return produto;
}
public void remove(Produto produto){
	Transaction tx = session.beginTransaction();
	session.delete(produto);
	tx.commit();
	
}
@SuppressWarnings("unchecked")
public List<Produto> listaTudo(){
	return this.session.createCriteria(Produto.class).list();

}

}

Erro:

SEVERE: Servlet.service() for servlet default threw exception

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name produtosController defined in file [C:\apache-tomcat-6.0.20\wtpwebapps\goodbuy\WEB-INF\classes\br\com\caelum\goodbuy\controller\ProdutosController.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.caelum.goodbuy.dao.ProdutoDAO]: : Error creating bean with name produtoDAO defined in file [C:\apache-tomcat-6.0.20\wtpwebapps\goodbuy\WEB-INF\classes\br\com\caelum\goodbuy\dao\ProdutoDAO.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.goodbuy.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 defined in file [C:\apache-tomcat-6.0.20\wtpwebapps\goodbuy\WEB-INF\classes\br\com\caelum\goodbuy\dao\ProdutoDAO.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.goodbuy.dao.ProdutoDAO]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/hibernate/Session

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

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

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

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

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

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

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

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

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

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

at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:385)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:375)

at org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1069)

at org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors(BeanFactoryUtils.java:221)

at br.com.caelum.vraptor.ioc.spring.VRaptorApplicationContext.getBean(VRaptorApplicationContext.java:240)

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

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

at br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:41)

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

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

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

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

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

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

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

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

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

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

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

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

at br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:62)

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

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

at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)

at java.lang.Thread.run(Unknown Source)

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name produtoDAO defined in file [C:\apache-tomcat-6.0.20\wtpwebapps\goodbuy\WEB-INF\classes\br\com\caelum\goodbuy\dao\ProdutoDAO.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.goodbuy.dao.ProdutoDAO]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/hibernate/Session

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:946)

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

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

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

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

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

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

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

at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:820)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:762)

at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:680)

at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:771)

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

 45 more

Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.caelum.goodbuy.dao.ProdutoDAO]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/hibernate/Session

at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:141)

at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:72)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:938)

 57 more

Caused by: java.lang.NoClassDefFoundError: org/hibernate/Session

at br.com.caelum.goodbuy.dao.ProdutoDAO.(ProdutoDAO.java:18)

at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Unknown Source)

at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126)

 59 more

Caused by: java.lang.ClassNotFoundException: org.hibernate.Session

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1387)

at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)

at java.lang.ClassLoader.loadClassInternal(Unknown Source)

 65 more

Bem, espero que algu´´em consiga me ajudar…

3 Respostas

sergiolopes

Oi Lucas!

Ta dando uma “java.lang.NoClassDefFoundError: org/hibernate/Session”. Isso indica que devem estar faltando JARs do Hibernate no seu projeto. Dá uma conferida na pasta WEB-INF/lib e vê se está tudo lá

[]'s

Lavieri

se nao estiver baixa esse arquivo => http://vraptor3.googlecode.com/files/vraptor-3.1.1.zip

dentro da pasta lib/opicional … la dentro contem todos os jars do hiberante

Lucas_Sorrentino

Realmente estavam faltando alguns Jars… obrigado, hein!

Criado 15 de março de 2010
Ultima resposta 15 de mar. de 2010
Respostas 3
Participantes 3