歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Hibernate配置常見錯誤

錯誤1:

log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).

log4j:WARN Please initialize the log4j system properly.

錯誤原因:

這是一個警告信息,提示說沒有找到Log4j的配置信息,不能為Hibernate環境提供日志信息,要求初始化log4j配置文件。

解決方法:

在項目的src下添加log4j.properties文件,該文件是log4j配置信息,內容如下:

 

 


 

 

 


 

 

 

錯誤2:

 

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Level

 

錯誤原因:

缺少log4j,因為hibernate框架本身也使用了第三方組件log4j來輸出Hibernate環境下執行的信息。

解決方法:

為項目導入log4j-1.2.15.jar包,或其他版本的都可以。

 

 

 


 

 

錯誤3:

 

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder

 

錯誤原因:

找不到類StaticLoggerBinder,缺少日志接口包slf4j-log4j.jar

解決方法:

導入slf4j-log4j12-1.5.8.jar,這個包與Hibernate3.3.2的版本對應

 


 

 

錯誤4:

 

Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

 

錯誤原因:

找不到類LoggerFactory,缺少包slf4j-api.jar

解決方法:

導入slf4j-api-1.5.8.jar,這個包與Hibernate3.3.2的版本對應

 


 

 

 

錯誤5:

 

SLF4J: The requested version 1.6.99 by your slf4j binding is not compatible with [1.5.5, 1.5.6, 1.5.7, 1.5.8]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.

 

錯誤原因:

這是jar包slf4j-log4j12.jar版本與Hibernate版本不相符引起的

解決方法:

刪除原來的版本的jar包,導入slf4j-log4j12-1.5.8.jar這個版本的jar包

 


 

 

錯誤6:

 

Exception in thread "main" java.lang.AbstractMethodError: Oracle.jdbc.driver.OracleDatabaseMetaData.supportsGetGeneratedKeys()Z

 

錯誤原因:

在Hibernate下,導入classes12.jar時會報這個錯誤

解決方法:

刪除classes12.jar,導入ojdbc5.jar或ojdbc6.jar來取代

 


 

 

錯誤7:

 

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial

 

錯誤原因:

Hibernate是采用JDBC 驅動,在配置文件hibernate.cfg.xml的<session-factory name="test">節點多了一個name屬性

解決方法:

刪除節點<session-factory>的name屬性

Hibernate 的詳細介紹:請點這裡
Hibernate 的下載地址:請點這裡

Hibernate 中文手冊 PDF http://www.linuxidc.com/Linux/2013-10/91208.htm

Copyright © Linux教程網 All Rights Reserved