• 【Hibernate】Hibernate3.x独立执行时的Failed to load class "org.slf4j.impl.StaticLoggerBinder"错误


    按理说,假设Hibernate不依附于SSH执行,像《【Struts2+Hibernate3+Spring3】利用SSH整合,完毕打印用户表,用户登录、注冊、改动password系统》(点击打开链接)一样。把hibernate-distribution-3.6.10.Final解压之后。把根文件夹的hibernate3.jar,hibernate-distribution-3.6.0.Finallib equired下的全部jar。hibernate-distribution-3.6.0.Finallibjpa下的全部jar也就是那个hibernate-jpa-2.0-api-1.0.1.Final.jar。hibernate-distribution-3.6.0.Finalliboptionalc3p0下的全部包。也就是那个c3p0-0.9.1.jar,复制到对应的Javaproject载入相同能够执行了。可是为什么没有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 Javaproject。


    因为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 Javaproject。

    此时。独立的Hibernate3.x已经能够执行了,只是还没有完,执行时候还会出现例如以下的log4j:WARN Please initialize the log4j system properly警告:


    要解决问题很easy,建立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最终能够自己独立执行了,真的是晕死了……

  • 相关阅读:
    switch循环所支持的数据类型
    java里面main方法中的String[]args
    java基本数据类型
    Jquery自定义插件
    Jquery插件(常用的插件库)
    【JAVA SE基础篇】43.Map接口和Set接口的常用方法
    【JAVA SE基础篇】42.手工实现ArrayList和LinkedList
    【JAVA SE基础篇】41.Collection、List方法和ArrayList、LinkedList、Vector底层实现
    【JAVA SE基础篇】40.容器(集合)和泛型的介绍
    【JAVA SE基础篇】39.编译时异常
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/6684982.html
Copyright © 2020-2023  润新知