2012-05-14 15 views
14

Estoy intentando utilizar hibernación 3.5.1 final en una aplicación swing y aquí están los frascos que estoy usando:java.lang.ClassNotFoundException: org.apache.log4j.Level

  • hibernación -core-3.5.1-final
  • hibernación-EntityManager-3.5.1-final
  • hibernate-jpa-2.0-api-1.0.0.Final
  • hibernate-anotaciones-3.5.1-Final
  • hibernate-commons-annotations-3.2.0.Final
  • dom4j-1.6.1
  • slf4j-api-1.6.4
  • slf4j-log4j12-1.6.4

Cuando trato de ejecutar la aplicación, me sale el siguiente error:

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:108) 
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:279) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:252) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:265) 
    at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:165) 
    at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:127) 
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32) 
    at com.xeno.xecamp.desktopManagement.Main.main(Main.java:16) 
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    ... 11 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:108) 
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:279) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:252) 
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:265) 
    at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:165) 
    at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:127) 
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48) 
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32) 
    at com.xeno.xecamp.desktopManagement.Main.main(Main.java:16) 
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Level 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
+0

Si está tratando de usar enlaces simbólicos para adjuntar sus archivos jar, vea http://stackoverflow.com/questions/22240776/symlinking-tomcat-8-directory-resources – GlenPeterson

Respuesta

34

También necesita incluir el archivo Log4J JAR en la ruta de clase.

Tenga en cuenta que slf4j-log4j12-1.6.4.jar es solo un adaptador para hacer posible el uso de Log4J a través de la API SLF4J. No contiene la implementación real de Log4J.

+1

¿puede decirme por favor la dependencia de maven? compatible con la versión que estoy usando? –

+8

Bueno, yo solo necesitaba ** log4j-1.2.16.jar ** –

+2

Añadiendo log4j-1.2.16.jar también resolvió el problema en mi caso, pero slf4j-log4j12-1.6.4.jar no hizo realidad – lizzie

5

Debe descargar log4j y agregar en su classpath.

Cuestiones relacionadas