Hibernate - LoggerFactory, class not found exception

5 respostas
E

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!

5 Respostas

Z

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

E

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

Z

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

E

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!

Z

Agora mudou o erro

Falta o jar do Log4j

Criado 29 de novembro de 2012
Ultima resposta 29 de nov. de 2012
Respostas 5
Participantes 2