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.
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.
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 "Tem que baixar e adicionar esse a parte, pois em nenhum pacote do hibernate tem ele"
postgresql-8.0-310.jdbc3.jar JDBC