【问题标题】:how do I to fix this SLF4J error我该如何解决这个 SLF4J 错误
【发布时间】:2013-08-16 19:54:50
【问题描述】:

我正在编写一个需要 Hibernate 技术的项目。我得到了这个堆栈跟踪,但我不知道如何修复它。有什么帮助吗?

这是我的堆栈跟踪,我遇到了这两个错误:

SLF4J:slf4j-api 1.6.x(或更高版本)与此绑定不兼容。 SLF4J:您的绑定是 1.5.5 或更早版本。 SLF4J:升级你的 绑定到版本 1.6.x。或 2.0.x

这是我的 HibernateUtils.class

包 com.forum.utils;

导入 org.hibernate.HibernateException;导入 org.hibernate.Session; 导入 org.hibernate.SessionFactory;进口 org.hibernate.cfg.AnnotationConfiguration;

公共类 HibernateUtils { 私有静态最终会话工厂 会话工厂;

// Crée une unique instance de la SessionFactory à partir de // hibernate.cfg.xml 静态 { 尝试 { sessionFactory = new AnnotationConfiguration().configure() .buildSessionFactory(); } catch (HibernateException ex) { throw new RuntimeException("Problème de configuration :" + ex.getMessage(), ex); } }

// Renvoie une session Hibernate public static Session getSession() 抛出 HibernateException { return sessionFactory.openSession(); } }

此错误从该行触发:

s = HibernateUtils.getSession();

hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
     "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
  <session-factory>

      <property name="connection.driver_class">org.postgresql.Driver</property>
      <property name="connection.url">jdbc:postgresql://localhost:5432/projetForum</property>
      <property name="connection.username">postgres</property>
      <property name="connection.password">esct</property>
      <property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>

      <!-- Comportement pour la conservation des tables -->
      <property name="hbm2ddl.auto">update</property>

      <!-- Activation : affichage en console, commentées et formatées -->
      <property name="show_sql">true</property>
      <property name="hibernate.format_sql">true</property>
      <property name="use_sql_comments">true</property>

      <!-- Fichiers à mapper -->
      <mapping class="com.forum.beans.Utilisateur" />
      <mapping class="com.forum.beans.Topic" />

  </session-factory>
</hibernate-configuration>

这是 Hibernate3.0 库和我的 jstl jar:

【问题讨论】:

    标签: hibernate jakarta-ee slf4j


    【解决方案1】:

    根据您的库列表,您的 slf4j-api 来自 hibernate-distribution,而 slf4j-log4j12 来自 hibernate-annotations。由于 slf4j 报告 api 和绑定(slf4j-log4j12)之间的版本不匹配,我假设您正在混合不兼容的休眠库。对于hibernate 3,有一个兼容性矩阵告诉你不同包的哪些版本可以一起使用:https://community.jboss.org/wiki/HibernateCompatibilityMatrix

    或者,您可以在构建工具中覆盖 slf4j-api 或 slf4j-log4j12 软件包的版本(假设您使用一个),并确保它们具有相同的版本。例如,如果您使用 slf4j-api 1.6.1,则应确保 slf4j-log4j12 库也是 1.6.1 版本。

    【讨论】:

      【解决方案2】:

      您需要将 slf4j-to-log4j 桥添加到您的类路径中,其版本与您的 slf4j api(此处为 1.6.1)相同 --- http://www.slf4j.org/dist/slf4j-1.6.1.zip

      如果使用 maven,请添加:

              <dependency>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-log4j12</artifactId>
                  <version>${slf4j.version}</version>
              </dependency>
      

      除了(可能已经添加...)

               <dependency>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-api</artifactId>
                  <version>${slf4j.version}</version>
               </dependency>
      

      【讨论】:

        【解决方案3】:

        您可以从 hibernate.org 下载 hibernate 最终包解压缩此 zip 文件并将目录 (hibernate/lib/required) 下的 jar 文件导入到您的 eclipse ide。之后,您可以从 slf4j.org 下载 slf4j.zip 解压缩并添加名为 slf4j-simple-1.7.6.jar 的 jar 文件

        【讨论】:

          猜你喜欢
          • 2016-07-21
          • 2016-09-09
          • 2015-02-28
          • 2020-04-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多