2012-05-14 5 views
14

Tôi đang cố gắng sử dụng ngủ đông 3.5.1 cuối cùng trong một ứng dụng swing và đây là những lọ Tôi đang sử dụng:java.lang.ClassNotFoundException: org.apache.log4j.Level

  • ngủ đông -core-3.5.1 Final
  • hibernate-EntityManager-3.5.1 Final
  • hibernate-jpa-2.0-api-1.0.0.Final
  • hibernate-chú thích-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

Khi tôi cố gắng để chạy các ứng dụng, tôi nhận được lỗi sau:

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

Nếu bạn đang cố gắng sử dụng liên kết tượng trưng để đính kèm tệp jar của mình, thì hãy xem http://stackoverflow.com/questions/22240776/symlinking-tomcat-8-directory-resources – GlenPeterson

Trả lời

34

Bạn cũng cần bao gồm tệp JAR Log4J trong đường dẫn lớp.

Lưu ý rằng slf4j-log4j12-1.6.4.jar chỉ là bộ điều hợp để có thể sử dụng Log4J thông qua API SLF4J. Nó không chứa thực hiện thực tế của Log4J.

+1

bạn có thể vui lòng cho tôi biết phụ thuộc maven hay không tương thích với phiên bản tôi đang sử dụng? –

+8

Tôi chỉ cần ** log4j-1.2.16.jar ** –

+2

thêm log4j-1.2.16.jar cũng giải quyết được vấn đề trong trường hợp của tôi nhưng slf4j-log4j12-1.6.4.jar không – lizzie

5

Bạn cần tải xuống log4j và thêm vào đường dẫn lớp của mình.