Exemplo básico do uso de hibernate [RESOLVIDO]

Pessoal, estou estudando o hibernate, pois segui passo a passo do tutorial, mas está me aparecendo o seguinte erro, e não consegui descobrir o que é.
Se puderem me ajudar eu agradeço.
a main

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.tool.hbm2ddl.SchemaExport;


public class GeraTabelas {
	
	public static void main(String[] args) {
		
		AnnotationConfiguration cfg = new AnnotationConfiguration();
		cfg.addAnnotatedClass(Produto.class);
		new SchemaExport(cfg).create(true, true);
	}
}

a classe Produto

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

@Entity
public class Produto {

	@Id
	@GeneratedValue
	private Long id;
	private String nome;
	private String desc;
	private double preco;
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getDesc() {
		return desc;
	}
	public void setDesc(String desc) {
		this.desc = desc;
	}
	public double getPreco() {
		return preco;
	}
	public void setPreco(double preco) {
		this.preco = preco;
	}
}

o erro que aparece na compilação

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
	at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:223)
	at org.slf4j.LoggerFactory.bind(LoggerFactory.java:120)
	at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
	at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:269)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:255)
	at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:152)
	at GeraTabelas.main(GeraTabelas.java:9)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
	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)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	... 8 more

Atc,

Cara,

se voce buscar nos topicos da semana passada, tem um topico que o cara listou todos os jars necessarios, e aliás foi usando SchemaExport também, dá uma fuçada!

Baixe o SL4J
http://www.slf4j.org/download.html

e coloque uma das implementacoes no seu projeto (como a do log4j)

abracos!

Fiz conforme o Paulo disse, mas agora apresentou o seguinte erro

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/Documents%20and%20Settings/Fernando/Desktop/slf4j-1.5.10/slf4j-1.5.10/slf4j-jcl-1.5.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Documents%20and%20Settings/Fernando/Desktop/slf4j-1.5.10/slf4j-1.5.10/slf4j-jdk14-1.5.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Documents%20and%20Settings/Fernando/Desktop/slf4j-1.5.10/slf4j-1.5.10/slf4j-log4j12-1.5.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Documents%20and%20Settings/Fernando/Desktop/slf4j-1.5.10/slf4j-1.5.10/slf4j-nop-1.5.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Documents%20and%20Settings/Fernando/Desktop/slf4j-1.5.10/slf4j-1.5.10/slf4j-simple-1.5.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
Exception in thread "main" java.lang.StackOverflowError
	at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:150)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:289)
	at org.slf4j.impl.JCLLoggerFactory.getLogger(JCLLoggerFactory.java:69)
	at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:249)
	at org.apache.commons.logging.impl.SLF4JLogFactory.getInstance(SLF4JLogFactory.java:155)
	at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:289)
	at org.slf4j.impl.JCLLoggerFactory.getLogger(JCLLoggerFactory.java:69)

e por aí vai.

Atc,

Senão me engano voce só precisaria da slf4j-api, mas na doc do hibernate e quando voce baixa já fala das libs de dependencias nao?!

Vou dar uma analisada melhor …

Valeu

Até uns tempos atrás, quando eu tava lidando num projeto pessoal eu usava 2 bibliotecas relacionadas ao log4j: log4j.jar e slf4j-log4j12.jar. Tente colocar 1 por 1 pra ver se pode ser isso… Ressalto que o projeto é melhor velho, então pode ser que exista uma nova versão ou algo do tipo.

Abraço!

Pessoal, tentei a dica de todos aqueles tentaram me ajudar, mas ainda continuo com o seguinte erro.

Exception in thread "main" java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory
	at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
	at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
	at GeraTabelas.main(GeraTabelas.java:9)

Tentei baixar novamente o hibernate, colocar no classpath seus jars baixei o SL4J citado pelo Paulo. Se alguém tiver mais alguma idéia eu agradeço.

Opa.
Então dá uma olhada nesse link. Essas exceptions relacionadas ao banco e coisa do tipo é sempre bom você pegar e fazer uma busca por elas… Sempre cai em resultados interessantes.

Editado: cara você criou 2 tópicos com o mesmo assunto… Chato, não? :\

exato. o problema é a versao dos jars agora. tem de ser a mesma versao da api e do -log4j.

Tive este problema, e o que acontecia é que eu não tinha o Jar que tinha esta classe, após incluir todos os Jars que vinha no Hibernate, Hibernate Annotations, e Validation, mudou de erro (não lembro agora), eu fui lá e saí clicando nos Jars pra ver as classes que possuíam, e descobri que tinha 2 com a mesma classe, apaguei o primeiro, e ficou tudo na paz.

:slight_smile:

Nossa, eu vez eu passei por este mesmo erro, qndo estava começando aprender hibernate. Ralei demais pra achar que era problema de versão de jars.

Boa sorte!

Eu fiquei 2 dias com esse mesmo problema que vc, resolvia um e aparecia outros 3, até que um dia eu consegui resolver, o problema é simplesmente versões de JAR, quando eu consegui arrumar já fiz um backup dos jar que funcionaram, agora não tenho mais esse problema, só volto o backup e pronto.:smiley:
Se vc quiser manda seu email que eu te mando os jar que eu tenho aqui.

Arquivos baixados hibernate.org
->hibernate-annotations-3.4.0.GA.zip
->hibernate-core-3.3.2.GA-dist.zip

Esse aqui foi baixado a parte para resolver o problema
->slf4j-1.5.10.zip(nele contém os benditos(slf4j-api-1.5.10.jar e slf4j-nop-1.5.10.jar)

antlr-2.7.6.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
ejb3-persistence.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
hibernate3.jar
javassist-3.9.0.GA.jar
jta-1.1.jar
jtds-0.8.1.jar
slf4j-api-1.5.10.jar
slf4j-nop-1.5.10.jar &quot;Tem que baixar e adicionar esse a parte, pois em nenhum pacote do hibernate tem ele&quot;
postgresql-8.0-310.jdbc3.jar JDBC