0

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

または、両方と 1 つずつですが、どのオプションも問題を解決しません。私はまだ取得してい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 に答える