2012-03-15 34 views
8

Perché ricevo questo errore:java.lang.NoSuchMethodError: ch.qos.logback.classic.LoggerContext.getBithTime()

java.lang.NoSuchMethodError: ch.qos.logback.classic.LoggerContext.getBithTime() 

La mia ipotesi è che l'errore di battitura è stato risolto e le versioni di slf4j e il logback non corrisponde ma non sono riuscito a trovare nulla nelle note di rilascio che indicano quali versioni sono compatibili.

Attualmente sto usando org.slf4j.api 1.6.1 e ch.qos.logback.classic 0.9.27.

Provengono dall'orbita di Eclipse, quindi non è molto semplice modificare entrambe le versioni.

risposta

9

Citando Logback news:

January 25th, 2011 - Release of version 0.9.28

Breaking change: In the Context interface, the previously misspelled property bithTime is now renamed as birthTime.

In the Context interface, the previously misspelled property bithTime is now renamed as birthTime. This is a backward-incompatible change. All pre-existing references to "bithTime" property now need to referenced as "birthTime".

In realtà il 0.9.27 dichiara SLF4J 1.6.1 come una dipendenza, sei sicuro che tutti i tuoi JAR hanno la versione specificata? Questo metodo viene utilizzato internamente tra i moduli logback e direi che è stato rinominato in tutti loro che suggerisce si dispone di una versione diversa di logback-core e logback-classic JAR.

davvero considerare anche l'aggiornamento, questa versione è più di un anno e Logback è ora in 1.x.

+0

Il problema era logback-core: Per qualche ragione, Eclipse non aggiungerlo anche se classica ha una dipendenza ad esso. Strano. –

+1

Si noti che il logback 1.0.X ha alcuni bug con ad es. SMTPAppender che almeno ci impedisce di lasciare 0.9. –

Problemi correlati