2012-03-15 15 views
8

Dlaczego mam ten błąd:java.lang.NoSuchMethodError: ch.qos.logback.classic.LoggerContext.getBithTime()

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

Domyślam się, że literówka został naprawiony i wersje slf4j i logback nie są zgodne, ale nie znalazłem nic w uwagach do wydania, które mówi, które wersje są zgodne.

Obecnie używam org.slf4j.api 1.6.1 i ch.qos.logback.classic 0.9.27.

Pochodzą one z platformy Eclipse Orbit, więc zmiana wersji nie jest łatwa.

Odpowiedz

9

Cytowanie 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".

Właściwie 0.9.27 deklaruje SLF4J 1.6.1 jako zależność, są na pewno wszystkie słoiki określona wersja? Ta metoda jest używana wewnętrznie pomiędzy modułami Logback i domyślam się, że została zmieniona we wszystkich z nich, co sugeruje, że masz inną wersję JARów logback-core i logback-classic.

Naprawdę warto rozważyć aktualizację, ta wersja ma więcej niż rok, a Logback jest teraz w wersji 1.x.

+0

Problem polegał na logback-core: Z jakiegoś powodu Eclipse nie dodał go, mimo że classic ma do niego zależność. Dziwne. –

+1

Należy zauważyć, że logback 1.0.X zawiera kilka błędów z np. SMTPAppender, który przynajmniej zabrania nam pozostawić 0.9. –