ERRO Vraptor

11 respostas
andreluis

estou usando o Vraptor. e sou iniciante, deu um erro eu nao consigo encontra o erro , por favor me ajudem..

obrigado....

--------------------------------------------------------------------------------------------------------------------------------

package br.com.biblioteca.entidades.cadastros;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class Acervo {
	
	@Id
	@GeneratedValue
	private int id;
	private String titulo;
	private String subTitulo;
	private Editora editora;
	private Autor autor;
	private ClassificacaoLiteraria classificacaoLiteraria;
	private Genero genero;
	private String palavrasChave;
	private Idiomas idioma;
	private String observacao;
	private int anoPublicacao;
	private String ISBN;
	private char status;
	private DisponibilidadeAcervo disponibilidadeAcervo;
	private String localizacao;
	private String assunto;
	private String cutter;
	private String edicao;
	private String numeroPagina;
	private String informacoesFisicas;
	private String indice;
	private Biblioteca biblioteca;
	
	public final int getId() {
		return id;
	}
	public final void setId(int id) {
		this.id = id;
	}
	public final String getTitulo() {
		return titulo;
	}
	public final void setTitulo(String titulo) {
		this.titulo = titulo;
	}
	public final String getSubTitulo() {
		return subTitulo;
	}
	public final void setSubTitulo(String subTitulo) {
		this.subTitulo = subTitulo;
	}
	public final Editora getEditora() {
		return editora;
	}
	public final void setEditora(Editora editora) {
		this.editora = editora;
	}
	public final Autor getAutor() {
		return autor;
	}
	public final void setAutor(Autor autor) {
		this.autor = autor;
	}
	public final ClassificacaoLiteraria getClassificacaoLiteraria() {
		return classificacaoLiteraria;
	}
	public final void setClassificacaoLiteraria(
			ClassificacaoLiteraria classificacaoLiteraria) {
		this.classificacaoLiteraria = classificacaoLiteraria;
	}
	public final Genero getGenero() {
		return genero;
	}
	public final void setGenero(Genero genero) {
		this.genero = genero;
	}
	public final String getPalavrasChave() {
		return palavrasChave;
	}
	public final void setPalavrasChave(String palavrasChave) {
		this.palavrasChave = palavrasChave;
	}
	public final Idiomas getIdioma() {
		return idioma;
	}
	public final void setIdioma(Idiomas idioma) {
		this.idioma = idioma;
	}
	public final String getObservacao() {
		return observacao;
	}
	public final void setObservacao(String observacao) {
		this.observacao = observacao;
	}
	public final int getAnoPublicacao() {
		return anoPublicacao;
	}
	public final void setAnoPublicacao(int anoPublicacao) {
		this.anoPublicacao = anoPublicacao;
	}
	public final String getISBN() {
		return ISBN;
	}
	public final void setISBN(String iSBN) {
		ISBN = iSBN;
	}
	public final char getStatus() {
		return status;
	}
	public final void setStatus(char status) {
		this.status = status;
	}
	public final DisponibilidadeAcervo getDisponibilidadeAcervo() {
		return disponibilidadeAcervo;
	}
	public final void setDisponibilidadeAcervo(
			DisponibilidadeAcervo disponibilidadeAcervo) {
		this.disponibilidadeAcervo = disponibilidadeAcervo;
	}
	public final String getLocalizacao() {
		return localizacao;
	}
	public final void setLocalizacao(String localizacao) {
		this.localizacao = localizacao;
	}
	public final String getAssunto() {
		return assunto;
	}
	public final void setAssunto(String assunto) {
		this.assunto = assunto;
	}
	public final String getCutter() {
		return cutter;
	}
	public final void setCutter(String cutter) {
		this.cutter = cutter;
	}
	public final String getEdicao() {
		return edicao;
	}
	public final void setEdicao(String edicao) {
		this.edicao = edicao;
	}
	public final String getNumeroPagina() {
		return numeroPagina;
	}
	public final void setNumeroPagina(String numeroPagina) {
		this.numeroPagina = numeroPagina;
	}
	public final String getInformacoesFisicas() {
		return informacoesFisicas;
	}
	public final void setInformacoesFisicas(String informacoesFisicas) {
		this.informacoesFisicas = informacoesFisicas;
	}
	public final String getIndice() {
		return indice;
	}
	public final void setIndice(String indice) {
		this.indice = indice;
	}
	public final Biblioteca getBiblioteca() {
		return biblioteca;
	}
	public final void setBiblioteca(Biblioteca biblioteca) {
		this.biblioteca = biblioteca;
	}
	
	
	
	
	 
	
}

----------------------------------------------------------------------------------------------------------------------------------------------------------

package br.com.biblioteca.controller.cadastros;

import java.util.List;

import br.com.biblioteca.Dao.cadastros.AcervoDao;
import br.com.biblioteca.entidades.cadastros.Acervo;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;

@Resource
public class AcervoController {
	
	
	private final AcervoDao dao;
	private final Result result;

	public AcervoController(AcervoDao dao, Result result) {
		this.dao = dao;
		this.result = result;
	}
	public List<Acervo> lista() {
		return dao.listaTudo();
	}
	public void adiciona(Acervo acervo) {
		dao.salva(acervo);
		
	}

	public Acervo edita(Long id) {
		return dao.carrega(id);
	}

	public void altera(Acervo acervo) {
		dao.atualiza(acervo);
		result.redirectTo(AcervoController.class).lista();
	}

	public void remove(Long id) {
		Acervo acervo = dao.carrega(id);
		dao.remove(acervo);
		result.redirectTo(AcervoController.class).lista();
	}

	public void formulario() {
	}

}
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
package br.com.biblioteca.Dao.cadastros;

import java.util.List;

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

import br.com.biblioteca.entidades.cadastros.Acervo;
import br.com.caelum.vraptor.ioc.Component;


@Component
public class AcervoDao {
	
	private final Session session;

	public AcervoDao() {
		this.session = CriadorDeSession.getSession();
	}

	public void salva(Acervo acervo) {
		Transaction tx = session.beginTransaction();
		session.save(acervo);
		tx.commit();
	}

	@SuppressWarnings("unchecked")
	public List<Acervo> listaTudo() {
		return this.session.createCriteria(Acervo.class).list();
	}

	public Acervo carrega(Long id) {
		return (Acervo) this.session.load(Acervo.class, id);
	}

	public void atualiza(Acervo acervo) {
		Transaction tx = session.beginTransaction();
		this.session.update(acervo);
		tx.commit();
	}

	public void remove(Acervo acervo) {
		Transaction tx = session.beginTransaction();
		this.session.delete(acervo);
		tx.commit();
	}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------------
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<form action="adiciona">
	<fieldset>
	<legend>Adicionar Acervos</legend>
	<label for="titulo">titulo:</label>
	<input id="titulo" type="text" name="acervo.titulo"/>
	<br/>
	<br/>
	<label for="subTitulo">subTitulo:</label>
	<input id="subTitulo" name="acervo.subTitulo"></input>
	<br/>
	<br/>
	<label for="editora">editora:</label>
	<input id="editora" type="text" name="acervo.editora"/>
	<br/>
	<br/>
	<button type="submit">Enviar</button>
	</fieldset>
</form>

</body>
</html>
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

este e o erro :

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 'acervoController' defined in file [D:\TDS\5 SEMESTRE\java\java web\apache-tomcat-6.0.18\wtpwebapps\Biblioteca\WEB-INF\classes\br\com\biblioteca\controller\cadastros\AcervoController.class]: Unsatisfied dependency expressed through constructor argument with index 0 of type [br.com.biblioteca.Dao.cadastros.AcervoDao]: : Error creating bean with name 'acervoDao' defined in file [D:\TDS\5 SEMESTRE\java\java web\apache-tomcat-6.0.18\wtpwebapps\Biblioteca\WEB-INF\classes\br\com\biblioteca\Dao\cadastros\AcervoDao.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.biblioteca.Dao.cadastros.AcervoDao]: Constructor threw exception; nested exception is org.hibernate.MappingException: Could not determine type for: br.com.biblioteca.entidades.cadastros.Biblioteca, at table: Devolucao, for columns: [org.hibernate.mapping.Column(biblioteca)]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'acervoDao' defined in file [D:\TDS\5 SEMESTRE\java\java web\apache-tomcat-6.0.18\wtpwebapps\Biblioteca\WEB-INF\classes\br\com\biblioteca\Dao\cadastros\AcervoDao.class]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.biblioteca.Dao.cadastros.AcervoDao]: Constructor threw exception; nested exception is org.hibernate.MappingException: Could not determine type for: br.com.biblioteca.entidades.cadastros.Biblioteca, at table: Devolucao, for columns: [org.hibernate.mapping.Column(biblioteca)]
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)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:886)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:479)
org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:450)
org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:328)
org.springframework.web.context.request.AbstractRequestAttributesScope.get(AbstractRequestAttributesScope.java:43)
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324)
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:385)
org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType(DefaultListableBeanFactory.java:375)
org.springframework.context.support.AbstractApplicationContext.getBeansOfType(AbstractApplicationContext.java:1069)
org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors(BeanFactoryUtils.java:221)
br.com.caelum.vraptor.ioc.spring.VRaptorApplicationContext.getBean(VRaptorApplicationContext.java:244)
br.com.caelum.vraptor.ioc.spring.SpringBasedContainer.instanceFor(SpringBasedContainer.java:59)
br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:41)
br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)

------------------------------------------------------------------------------------------------

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name></display-name>
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
	
	<!-- configura o controlador do VRaptor -->
	<filter>
		<filter-name>vraptor</filter-name>
		<filter-class>br.com.caelum.vraptor.VRaptor</filter-class>
	</filter>
	
	<filter-mapping>
		<filter-name>vraptor</filter-name>
		<url-pattern>/*</url-pattern>
		<dispatcher>FORWARD</dispatcher>
		<dispatcher>REQUEST</dispatcher>
	</filter-mapping>
</web-app>

11 Respostas

Guevara

Olá!
Poderia editar o seu post com as tags “code” onde tiver código? Fica mais fácil de ler.
Abraço!

andreluis

Ok, obrigado pela dica, desculpe sou novo no forum, alguem ai alguma dica?

Lucas_Cavalcanti

erro:

Could not determine type for: br.com.biblioteca.entidades.cadastros.Biblioteca, at table: Devolucao, for columns: [org.hibernate.mapping.Column(biblioteca)]

ou seja, vc tem uma classe Devolucao que tem um atributo Biblioteca… se o atributo também é uma entidade, vc tem que especificar o relacionamento…
@ManyToOne ou @OneToOne nesse caso… (daí vc tem que anotar em cima do atributo biblioteca)

Lagaffe

Pelo erro me parece que você usa hibernate.

Você usa anotações para indicar os seus relacionamentos?
Me parece que você não usou essas anotações. Por exemple @ManyToOne.

andreluis

Então eu ñ conheço muito de hibernate, mas nessa minha classe eu não possuo atributo devolução nela, só que na classe de devolução tem um atributo de acervo, pode ser isso o erro? oque devo fazer? como vcs podem ver nessa minha classe eu possuo outros relacionamentos, como eu tenho que proceder para ficar correto? os demais?

muito obrigado pela atenção

Lagaffe

Se você quiser utilizar hibernate vai ter de estudar um pouco. Deve ter apostilhas na internet ensinando como usar.

Eu aprendi num curso, com a documentação on-line oficial, que é muito boa, e com a literatura.

De modo geral você sempre terá de expecificar todos os relacionamentos no seu modelo de dados, senão o hibernate não consegue de forma correta, “mapear os atributos entre uma base de dados relacional e o modelo objeto de uma aplicação”.

Na sua aplicação, aparentemente, você deve incluir a anotação @ManyToOne no atributo Biblioteca da classe Devolucao:

@ManyToOne
private Biblioteca biblioteca;

Verifique todos os relacionamentos de todas as tabelas. Na sua classe acervo percebi que faltam várias anotações.

Eu te passei um exemplo mas como cada relacionamento é diferente as anotações serão diferentes.

Lucas_Cavalcanti

na sua classe devolucao tem um atributo biblioteca

andreluis

hmm acho que entendi, então no caso, mesmo se eu não estiver utilizando a classe devolução diretamente o hibernate faz o “cascateamento” de todos as classes? como ele não encontra o relacionamento da devolução com a biblioteca ele produz o erro? no caso então para um cadastro funcionar todas minhas classes tem que estar com os relacionamentos setados pelo hibernate? antes disso não consigo fazer um teste para ver se é isso? obrigado e desculpe por tantas perguntas.

andreluis

No caso o que está mais me confundindo é que eu estou chamando o método formulário que não tem nada, e é o formulário da classe acervo, que não passa nem perto da classe devolução, a unica coisa é que na classe devolução tem um atributo acervo do tipo Acervo.

alguem consegue esclarecer isso pra mim? obrigado

Lucas_Cavalcanti

o hibernate vai configurar todas as suas entidades no momento que vc sobe sua aplicação… (qdo cria a sessionFactory na verdade)…
então tudo que estiver mapeado tem que estar com os relacionamentos funcionando…

se vc não quiser incluir algumas classes, remova-as do hibernate.cfg.xml

andreluis

hmmmm entendi lucas, obrigado em casa irei tentar, qualquer coisa posto novamente rs, vlw

Criado 3 de junho de 2010
Ultima resposta 4 de jun. de 2010
Respostas 11
Participantes 4