Hibernate配置常见错误
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
评论暂时关闭