我正在使用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
。
如果有人可以指出我做错了什么,那就太好了。
答案 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>