2012-03-15 16 views
8

¿Por qué aparece este error:java.lang.NoSuchMethodError: ch.qos.logback.classic.LoggerContext.getBithTime()

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

Mi conjetura es que el error tipográfico se ha corregido y las versiones de slf4j y logback no coinciden, pero no pude encontrar nada en las notas de la versión que indique qué versiones son compatibles.

Actualmente, estoy usando org.slf4j.api 1.6.1 y ch.qos.logback.classic 0.9.27.

Son de Eclipse Orbit, por lo que no es realmente sencillo cambiar ambas versiones.

Respuesta

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

En realidad, el 0.9.27 declara SLF4J 1.6.1 como una dependencia, ¿está seguro de todos los frascos han especificado la versión? Este método se usa internamente entre los módulos de Logback y supongo que fue renombrado en todos ellos, lo que sugiere que tiene una versión diferente de los JAR logback-core y logback-classic.

También considero actualizar, esta versión tiene más de un año y Logback está ahora en 1.x.

+0

El problema era logback-core: Por alguna razón, Eclipse no lo agregó aunque el clásico tiene una dependencia de él. Extraño. –

+1

Tenga en cuenta que logback 1.0.X tiene algunos errores con p. Ej. SMTPAppender que al menos nos prohíbe dejar 0.9. –

Cuestiones relacionadas