2014-01-15 364 views
1

我正在使用Spring,vaadin和maven(如工具di項目管理)開發應用程序。 現在,當嘗試執行碼頭:運行我得到以下錯誤:嘗試初始化時的AbstractMethodError Spring

java.lang.AbstractMethodError: org.slf4j.impl.Log4jLoggerAdapter.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V 
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:159) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:272) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) 

這是我的pom.xml

<!-- Logging dependencies --> 
    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>com.springsource.org.apache.commons.logging</artifactId> 
     <version>1.1.1</version> 
    </dependency> 


    <!-- Log4J dependencies --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>com.springsource.slf4j.log4j</artifactId> 
     <version>1.5.6</version> 
    </dependency> 

    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>com.springsource.slf4j.api</artifactId> 
     <version>1.5.6</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.log4j</groupId> 
     <artifactId>com.springsource.org.apache.log4j</artifactId> 
     <version>1.2.15</version> 
    </dependency> 

    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-ext</artifactId> 
     <version>1.7.1</version> 
    </dependency> 

    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.7.1</version> 
     <scope>runtime</scope> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <exclusions> 
     <!-- Exclude Commons Logging in favor of SLF4j --> 
      <exclusion> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging</artifactId> 
      </exclusion> 
     </exclusions> 
     <version>${spring.version}</version> 
    </dependency> 

該怎麼做才能解決這個問題?

+0

有你的日誌庫之間的兼容性問題。 –

+0

爲什麼包含'com.springsource' slf4j工件,以及爲什麼有這麼多不同的版本?順便說一下,這個錯誤通常意味着API類定義了一個抽象方法,但是您正在使用舊版本的實現類,該類沒有實現該方法。 – chrylis

+0

任何建議我必須改變以解決它? – Skizzo

回答

1

與您所管理的日誌記錄相關性存在衝突。下面替換你的依賴:這將解決你的依賴問題

 <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>1.6.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>jcl-over-slf4j</artifactId> 
      <version>1.6.1</version> 
      <scope>runtime</scope> 
     </dependency> 

     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.15</version> 
      <exclusions> 
       <exclusion> 
        <groupId>com.sun.jdmk</groupId> 
        <artifactId>jmxtools</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>com.sun.jmx</groupId> 
        <artifactId>jmxri</artifactId> 
       </exclusion> 
      </exclusions> 
      <scope>runtime</scope> 
     </dependency> 
     <dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-classic</artifactId> 
      <version>0.9.26</version> 
     </dependency> 
     <dependency> 
      <groupId>ch.qos.logback</groupId> 
      <artifactId>logback-core</artifactId> 
      <version>0.9.26</version> 
     </dependency> 
+0

即使在使用此依賴關係層次結構時也會得到相同的錯誤。 – bschandramohan

+0

@ChandraMohan ...這與你的依賴版本有關。你可以發佈你的pom嗎? – dhamibirendra

2

我解決了這個評論兩個依賴:

 <!-- Log4J dependencies 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>com.springsource.slf4j.log4j</artifactId> 
     <version>${slf4j.log4j.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>com.springsource.slf4j.api</artifactId> 
     <version>${slf4j.log4j.api.version}</version> 
    </dependency> 
    --> 
相關問題