Caros colegas, estou iniciando com java e frameworks e estou começando com o vRaptor3 e já senti uma dificuldade no inicio. A apostila da caelum orienta que no contrutor do controlador eu inicialize o objeto dao, como o exemplo:
Entretanto, quando faço isso dá o seguinte erro:
Error creating bean with name ‘alunosController’ defined in file [D:\Nayane\projetos\vRaptor3\build\web\WEB-INF\classes\controle\turmas\controlador\AlunosController.class]
Mas quando retiro o AlunoDao como parametro dá certo, mas não consigo salvar o aluno no banco de dados e dá o erro:
br.com.caelum.vraptor.InterceptionException: java.lang.NullPointerException, eu debuguei e ele nem entrou no “dao.save”
O problema é , já inseri os objetos. org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.hibernate.Session] is defined: Unsatisfied dependency of type [interface org.hibernate.Session]: expected at least 1 matching bean
Em resumo você precisa adicionar no seu web.xml uma configuração para que o vraptor possa iniciar os componentes da Session do Hibernate. Você precisa fazer isso porque ele é um componente opcional.
ok, adicionei o parametro e a classe, quando fui mapear minha classe Aluno deu o erro:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘hibernateTransactionInterceptor’: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.Session]: : Error creating bean with name ‘br.com.caelum.vraptor.util.hibernate.SessionCreator’: FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘sessionCreator’: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.SessionFactory]: : Error creating bean with name ‘br.com.caelum.vraptor.util.hibernate.SessionFactoryCreator’: FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘sessionFactoryCreator’: Invocation of init method failed; nested exception is org.hibernate.MappingException: Unable to load class declared as in the configuration:; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘br.com.caelum.vraptor.util.hibernate.SessionFactoryCreator’: FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘sessionFactoryCreator’: Invocation of init method failed; nested exception is org.hibernate.MappingException: Unable to load class declared as in the configuration:; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘br.com.caelum.vraptor.util.hibernate.SessionCreator’: FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘sessionCreator’: Unsatisfied dependency expressed through constructor argument with index 0 of type [org.hibernate.SessionFactory]: : Error creating bean with name ‘br.com.caelum.vraptor.util.hibernate.SessionFactoryCreator’: FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘sessionFactoryCreator’: Invocation of init method failed; nested exception is org.hibernate.MappingException: Unable to load class declared as in the configuration:; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘br.com.caelum.vraptor.util.hibernate.SessionFactoryCreator’: FactoryBean threw exception on object creation; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘sessionFactoryCreator’: Invocation of init method failed; nested exception is org.hibernate.MappingException: Unable to load class declared as in the configuration:
=(
G
garcia-jj
<mapping class="Aluno"/>
Você deve colocar o endereço completo da classe, com o pacote. Exempo:
<mapping class="meu.pacote.Aluno"/>
Nayane1
Ok, era isso mesmo, valeu! Meu problema agora é na hora de salvar no banco. Não estou sabendo como abrir conexão…
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘alunosController’ defined in file [C:\Users\nayane\Documents\NetBeansProjects\vRaptor3\build\web\WEB-INF\classes\controle\turmas\controlador\AlunosController.class]: Unsatisfied dependency expressed through constructor argument with index 1 of type [org.springframework.orm.jpa.vendor.Database]: : No unique bean of type [org.springframework.orm.jpa.vendor.Database] is defined: Unsatisfied dependency of type [class org.springframework.orm.jpa.vendor.Database]: expected at least 1 matching bean; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [org.springframework.orm.jpa.vendor.Database] is defined: Unsatisfied dependency of type [class org.springframework.orm.jpa.vendor.Database]: expected at least 1 matching bean
vc deve estar recebendo um Database no construtor do AlunosController… não faça isso! receba o AlunoDao no construtor do AlunosController que deve funcionar…
PS: coloque seus códigos entre [code ] e [/code ] (sem espaços dentro da tag)
Nayane1
ok, obrigada! O erro agora é outro:
br.com.caelum.vraptor.InterceptionException: java.lang.ClassCastException: org.hibernate.transaction.JDBCTransaction cannot be cast to javax.transaction.Transaction
Lucas, permita-me te corrigir. Nunca deve-se esconder a exception. Eu colocaria alí após o transaction.rollback um throw new MyServiceException(e) para avisar as camadas superiores que ocorreu um erro para que elas possam tratar isso. As exceptions nunca devem ser simplesmente escondidas.