2011-03-23 18 views
7

primavera tiroslo que está mal de este error marco

Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V 
    at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:159) 
    at org.springframework.context.support.AbstractApplicationContext.prepareRefresh(AbstractApplicationContext.java:454) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:392) 
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139) 
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:93) 

cuál es la razón?

Respuesta

8

El motivo es la versión incorrecta de la biblioteca agregada (conflicto de versión).

Compruebe la versión de javadoc de slf4j y trate de descubrir, ¿este método existe con qué versión?

1

Es posible que tenga una clase dos veces en su classpath.

Compruebe el classpath de las ocurrencias.

2

Si está ejecutando OSX puede encontrarse con esto se debe a los siguientes archivos se incluyen como extensiones de Java:

/Library/Java/Extensions/slf4j-api-1.5.8.jar

/Biblioteca /Java/Extensions/slf4j-log4j12-1.5.8.jar

Estos son cargados por el cargador de clases de la extensión, antes del cargador de clases de la aplicación, por lo que estos se resolverán primero.

no tengo ni idea de por qué son allí o cuando se han añadido, pero sólo he visto esto en OSX y en el último año, lo que podría dar a entender que se introdujeron en Java 6.

puede quitar \ mover los archivos para solucionar el problema, pero puede haber algunas aplicaciones que dependen de ellos.

+0

¡A ver si en mi caso! ¡Gracias! –

Cuestiones relacionadas