首页 文章

我该如何解决这个SLF4J错误

提问于
浏览
0

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

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

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

这是我的HibernateUtils.class

package com.forum.utils; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.AnnotationConfiguration; public class HibernateUtils {private static final SessionFactory sessionFactory; //Créeuneunique instance de laSessionFactoryàpartirde // hibernate.cfg.xml static {try {sessionFactory = new AnnotationConfiguration() . configure() . buildFessionFactory(); } catch(HibernateException ex){throw new RuntimeException(“Problèmedeconfiguration:”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'coding ='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
“ - // Hibernate / Hibernate配置DTD 3.0 // EN”
“http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd”>

<冬眠配置>
<会话厂>

<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>

<! - 激活:affichage en console,commentéessetformaté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”/>

</会话厂>
</休眠配置>

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

enter image description here

3 回答

  • 0

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

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

  • 0

    你需要将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>
    
  • 0

    你可以从hibernate.org下载hibernate final包解压缩这个zip文件并将目录下的jar文件(hibernate / lib / required)导入你的eclipse ide . 之后你可以从slf4j.org unzip下载slf4j.zip并添加名为slf4j-simple-1.7.6.jar的jar文件

相关问题