[RESOLVIDO] erro no hibernate - parece ser ao abrir a conexão com o mysql

1 resposta
R

Tentando implementar o hibernate está dando o erro abaixo. Já ralei pra tentar descobrir o erro, mas como sou filhote ainda não estou conseguindo.

O ERRO!!!

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
	at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:165)
	at dao.ConnectionUtil.<init>(ConnectionUtil.java:16)
	at teste.main(teste.java:15)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	... 3 more

A classe

package bel;

import java.util.Collection;
import lists.Estado;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Column;
import javax.persistence.OneToMany;


/**
 * Classe que representa a Cidade, que está presente no usuário (para possibilitar estatisticas quantitativas visando futuros relatórios de marketing e vendas), endereco e eventos.
 * @author romulor2
 */
@Entity(name="endereco")
public class Cidade {
  	@Id
 	@GeneratedValue
 	@Column(name="idcidade") 
	private Integer sequencialCidade;
	@Column(name="txnomecidade") 	 
	private String nomeCidade;
	@Column(name="codestado") 	 
    @Enumerated(EnumType.STRING)	
	private Estado estado;
	//@OneToMany(mappedBy="cidade", fetch=FetchType.LAZY)
    //private Collection<bel.Usuario> usuariosCidade;

getters and setters
}
package bel;

//import java.util.Collection;
import java.util.Date;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Column;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


import lists.Sexo;

/**
 * Classe genérica que representa o Usuário do site.
 * @author romulor2
 */
@Entity(name="usuario")
//@Inheritance(strategy= InheritanceType.JOINED)
public class Usuario {
 	@Id
 	@GeneratedValue
 	@Column(name="idusuario")
	protected Integer	sequencialUsuario;
 	@Column(name="txnome")
	protected String	nomeUsuario;
 	@Column(name="txlogin")
	protected String	loginUsuario;
 	@Column(name="txsenha")
	protected String	senhaUsuario;
 	@Column(name="txemail") 	
	protected String	emailUsuario;
 	@Temporal(TemporalType.DATE)
 	@Column(name="datanascimento")
	protected Date		dataNascimento;
 	@Column(name="txsexo")
 	@Enumerated(EnumType.STRING)
	protected Sexo		sexo;

Aqui entra os getters e setters

O hibernate-cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
	<session-factory>
		
		<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
		<property name="hibernate.connection.url">jdbc:mysql://localhost/adorandocommusica</property>
		<property name="hibernate.connection.username">root</property>
		<property name="hibernate.connection.password"></property>
		<property name="hibernate.show_sql">true</property>
		<property name="hibernate.format_sql">true</property>
		<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>

		<mapping class="bel.Usuario"/>
		<mapping class="bel.Cidade"/>


	</session-factory>
</hibernate-configuration>

a classe de chamada

package dao;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.cfg.Configuration;

public class ConnectionUtil {

	private Session sessao;
	private Transaction transacao;
	public ConnectionUtil()
	{
		//Cria objeto que receberá as configurações   
	    Configuration cfg = new AnnotationConfiguration(); 
	    //Informe o arquivo XML que contém a configurações 
	    cfg.configure("hibernate.cfg.xml");
	    //Cria uma fábrica de sessões.  
	    //Deve existir apenas uma instância na aplicação 
	    SessionFactory sf = cfg.buildSessionFactory(); 

	    // Abre sessão com o Hibernate 
	    sessao = sf.openSession();    
	}
	
	public Transaction getTransacao()
	{
		return transacao;
	}
	
	public Session getSessao()
	{
		return sessao;
	}	
	
	public void iniciaTransacao()
	{
		transacao = sessao.beginTransaction();
	}
	
	public void commitTransacao()
	{
		transacao.commit();
	}
	
	public void rollbackTransacao()
	{
		transacao.rollback();
	}
	
	public void finalize()
	{
		sessao.close();
	}
}

A classe do teste

import java.text.ParseException;

public class teste {
	public static void main(String[] args) throws ParseException
	{
		System.out.println("teste 2");
		bel.Usuario usu = new bel.Usuario();
		
		usu.setLoginUsuario("teste");
		usu.setNomeUsuario("teste1");
		usu.setEmailUsuario("[email removido]");
		
		dao.Usuario usuDao = new dao.Usuario();
		
		dao.ConnectionUtil conn = new dao.ConnectionUtil();
		conn.iniciaTransacao();
		usuDao.salvar(conn.getSessao(), conn.getTransacao(), usu);
		
	}
}

1 Resposta

romarcio

ta faltando o arquivo .jar dessa classe org/slf4j/LoggerFactory

pode baixar aqui: http://www.slf4j.org/download.html

depois adiciona no projeto.

Criado 19 de agosto de 2010
Ultima resposta 19 de ago. de 2010
Respostas 1
Participantes 2