0

我正在使用休眠核心 3.6.0.Final 和休眠注释 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. 如果有人能指出我做错了什么,那就太好了。

4

1 回答 1

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>
于 2012-11-26T07:19:10.840 回答