2013-11-24 55 views
0

我試着用hibernate和HSQLDB運行簡單的程序。Hibernate - java.lang.NoClassDefFoundError:org/slf4j/LoggerFactory

我使用log4j這個項目與log4j.properties

# Direct log messages to stdout 
log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
log4j.appender.stdout.Target=System.out 
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %c{1}:%L - %m%n 

# Root logger option 
log4j.rootLogger=INFO, stdout 

# Hibernate logging options (INFO only shows startup messages) 
log4j.logger.org.hibernate=INFO 

# Log JDBC bind parameter runtime arguments 
log4j.logger.org.hibernate.type=INFO 

,一切都建立與Ant,建立文件就可以了see here

但是當我運行schemaexport目標我抓住了一個錯誤:

BUILD FAILED 
/home/nazar_art/workspace/Persistance/build.xml:64: java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 

schemaexport error

但我一直沒有使用slf4j爲什麼這個原因引起的?

這裏是我與它採用全罐子lib文件夾的內容:

lib struckture

我無法弄清楚爲什麼會發生這種情況?

這裏是更好的項目結構:

project struckture

編輯:

我加入slf4j-api-1.6.1.jarslf4j-log4j12-1.6.1.jar但它拋出:

BUILD FAILED /home/nazar_art/workspace/Persistance/build.xml:64: java.lang.NoClassDefFoundError: javax/persistence/EntityListeners

,你可以在這裏看到它的外觀:

entity listeners

如何解決這個問題?

回答

1

Hibernate在內部使用SLF4J來進行自己的日誌記錄。它是不同日誌實現之上的抽象層。像使用這個外觀的框架,因爲在這種情況下,你仍然保持獨立於某些實現。你也可以使它與log4j一起工作。按照this tutorial一起工作。

+0

我遵循本教程的指示,但又遇到了另一個麻煩。我更新了問題。 –

+1

現在您需要添加JPA API jar ... – noone