Hibernate - LoggerFactory, class not found exception

Bom dia pessoal!

Eu criei a classe GeraTabelas, conforme o exercício da apostila FJ-21 da Caelum, porém ao tentar execurar a classe, gera o erro:

Exception in thread “main” java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at org.hibernate.cfg.annotations.Version.(Version.java:36)
at org.hibernate.cfg.AnnotationConfiguration.(AnnotationConfiguration.java:135)
at br.com.caelum.hibernate.GeraTabelas.main(GeraTabelas.java:8)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader$1.run(Unknown Source)
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

Eu adicionei as .JARs no diretório lib:

antlr-2.7.7
c3p0-0.9.1
dom4j-1.6.1
hibernate-annotations-3.5.6-Final
hibernate-commons-annotations-4.0.1.Final
hibernate-core-4.1.8.Final
hibernate-jpa-2.0-api-1.0.1.Final
javassist-3.15.0-GA
jboss-logging-3.1.0.GA
jboss-transaction-api_1.1_spec-1.0.0.Final
mysql-connector-java-5.1.22-bin
slf4j-log4j12-1.7.2

Mas acho que está faltando adicionar mais algum .JAR, alguém sabe me dizer qual, tentei pelo erro procurando no Google, mas só encontrei a documentação, não conseguindo chegar a uma solução…

Desde já, agradeço a atenção!

Falta o slf4j api (não me lembro o nome do jar)

No seu classpath só tem a implementação, que é o slf4j-log4j12-1.7.2

Adicionei TODOS os .JARs do “slf4j-1.7.2”, e o erro continuou…

Todos??

No seu caso seria apenas o slf4j-api-1.7.2.jar

Você só precisa do jar da api e de uma implementação

Então no lib estão os .JARs:

antlr-2.7.7.jar
c3p0-0.9.1.jar
dom4j-1.6.1.jar
hibernate-annotations-3.5.6-Final.jar
hibernate-commons-annotations-4.0.1.Final.jar
hibernate-core-4.1.8.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
javassist-3.15.0-GA.jar
jboss-logging-3.1.0.GA.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
mysql-connector-java-5.1.22-bin.jar
slf4j-api-1.7.2.jar
slf4j-log4j12-1.7.2.jar

A API é a => slf4j-api-1.7.2.jar ; E a implementação é a => slf4j-log4j12-1.7.2.jar ; Mesmo porque meu projeto é bem simples…

Porém quando eu rodo a classe gera os dois erros:

ClassNotFoundException: org.apache.log4j.Level
NoClassDefFoundError: org/apache/log4j/Level

Conforme abaixo:

Failed to instantiate SLF4J LoggerFactory
Reported exception:
java.lang.NoClassDefFoundError: org/apache/log4j/Level
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:107)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:295)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281)
at org.hibernate.cfg.annotations.Version.(Version.java:36)
at org.hibernate.cfg.AnnotationConfiguration.(AnnotationConfiguration.java:135)
at br.com.caelum.hibernate.AdicionaProduto.main(AdicionaProduto.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level
at java.net.URLClassLoader$1.run(Unknown Source)
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)
… 8 more
Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/log4j/Level
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:107)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:295)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:269)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281)
at org.hibernate.cfg.annotations.Version.(Version.java:36)
at org.hibernate.cfg.AnnotationConfiguration.(AnnotationConfiguration.java:135)
at br.com.caelum.hibernate.AdicionaProduto.main(AdicionaProduto.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level
at java.net.URLClassLoader$1.run(Unknown Source)
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)
… 8 more

Eu fiz o curso em 2008, e agora estou revisando o conteúdo pra fazer umas provas, pra ver se eu consigo mudar de linguagem de programação…

Obrigado pela atenção!

Agora mudou o erro

Falta o jar do Log4j