2012-11-25 43 views
0

我使用的是hibernate-core 3.6.0.Final & hibernate-annotations 3.5.6-最後。哪個版本的slf4j-log4j12與hibernate 3.6.0.Final一起使用(具有slf4j-api 1.5.8的內部依賴)

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

我在我的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> 
+0

它似乎工作,雖然我用解決我的問題 ' org.hibernate作爲 的Hibernate的EntityManager 3.6.0.Final ' 而不是 ' org.hibernate作爲 休眠核 3.6.0.Final ' 和包括SLF4J-log4j12作爲休眠的內部依賴關係的同一版本,其出來爲1.6 0.1 –

相關問題