频道栏目
首页 > 资讯 > Sybase > 正文

【Hibernate】Hibernate3.x独立运行时的Failedtoloadclass"org.slf4j.impl.StaticLoggerBinder"错误

15-06-29        来源:[db:作者]  
收藏   我要投稿

按理说,如果Hibernate不依附于SSH运行,像《【Struts2+Hibernate3+Spring3】利用SSH整合,完成打印用户表,用户登录、注册、修改密码系统》(点击打开链接)一样,把hibernate-distribution-3.6.10.Final解压之后,把根目录的hibernate3.jar,hibernate-distribution-3.6.0.Final\lib\required下的所有jar,hibernate-distribution-3.6.0.Final\lib\jpa下的所有jar也就是那个hibernate-jpa-2.0-api-1.0.1.Final.jar,hibernate-distribution-3.6.0.Final\lib\optional\c3p0下的所有包,也就是那个c3p0-0.9.1.jar,拷贝到相应的Java工程加载同样可以运行了,但是为什么没有Spring与Struts2的支持,就会出现如下图的,Failed to load class "org.slf4j.impl.StaticLoggerBinder"错误呢?


这个问题在Hibernate4.x中没有,可能意识到自己这样是不对的,在Hibernate3.x中,Hibernate使用SLF4J API这个接口记录日志,但是在Hibernate的lib中,却没有提供Log4J的包,都不知道在想甚的,自己用了的lib包因为害怕与其它框架的日志记录包冲突却不提供,导致自己无法独立运行!

因此,我们要自己补充SLF4J API这个接口。

具体是打开SLF4J官方网站(点击打开链接),下载:


解压之后,如下图结构,版本号没问题,取走其中的slf4j-log4j12-1.7.12.jar,加载到独立运行的Hibernate3.x Java工程。


由于slf4j像Hibernate兼容各种连接Mysql,Orcale等数据库连接jar包的接口一样,只是一个兼容各种生成Java日志jar包。还要下载一个真正工作的日志jar包,这里使用最大众的log4j,虽然平时我们一般都不会记录日志的了……打开Apache的官网(点击打开链接)如下图,选择log4j-1.2.17.zip(Windows)或者log4j-1.2.17.tar.gz(Linux)。


解压之后,把apache-log4j-1.2.17下的log4j-1.2.17.jar,同样加载到独立运行的Hibernate3.x Java工程。

此时,独立的Hibernate3.x已经可以运行了,不过还没有完,运行时候还会出现如下的log4j:WARN Please initialize the log4j system properly警告:


要解决这个问题非常简单,建立LOG4J 的配置文件即可。如下图在src目录下创建配置文件,右击src文件夹,选择菜单New>File,文件名输入log4j.properties,


在里面写入如下内容:

log4j.rootLogger=WARN, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
此时,Hibernate3.x终于可以自己独立运行了,真的是晕死了……
相关TAG标签
上一篇:【Hibernate】Hibernate的多表查询
下一篇:SQLServer与Oracle的对比
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站