哪个版本的slf4j-log4j12与hibernate 3.6.0.Final一起使用(具有slf4j-api的内部依赖性1.5.8)

时间:2012-11-25 22:03:51

标签: hibernate maven-2 struts2

我正在使用hibernate-core 3.6.0.Final& hibernate-annotations 3.5.6-Final。

Hibernate依赖于slf4j-api 1.5.8,所以它会自动添加到我的maven项目依赖项中。

但是当我尝试运行该项目时,我收到以下错误:

java.lang.IllegalAccessError: tried to access field org.slf4j.impl.StaticLoggerBinder.SINGLETON from class org.slf4j.LoggerFactory

谷歌说这是由于slf4j和slf4j-log4j12的版本不同而主要是使用hibernate 3.3

我补充说:

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.5.8</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.5.8</version>
        </dependency>

或者,两者都是一对一但没有一个选项可以解决问题。我仍然得到IllegalAccessError。 如果有人可以指出我做错了什么,那就太好了。

1 个答案:

答案 0 :(得分:0)

我的pom.xml中有log4j和slf4j的以下依赖项。它对我来说很好,希望这对你也有帮助

    <properties>
      <slf4j.version>1.6.4</slf4j.version>
      <log4j.version>1.2.16</log4j.version>
    </properties>

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

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

      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>${log4j.version}</version>
      </dependency>

    </dependencies>