2011-03-23 16 views
7

Primavera tiricosa c'è di sbagliato in questo errore quadro

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) 

qual è la ragione?

risposta

8

Il motivo è la versione errata della libreria aggiunta (conflitto di versione).

Controllare la versione di slf4j javadoc e provare a capire, questo metodo esiste con quale versione?

1

Si potrebbe avere una classe due volte nel classpath.

Controllare il percorso di classe per le occorrenze.

2

Se si esegue OSX si potrebbe trovare questo è perché i seguenti file sono inclusi come estensioni Java:

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

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

Questi vengono caricati dal programma di caricamento delle estensioni, prima del classloader dell'applicazione, quindi questi verranno risolti per primi.

Non ho idea del motivo per cui questi ci sono o se sono stati aggiunti, ma ho visto solo questo su OSX e nel corso dell'ultimo anno, che potrebbe implicare sono stati introdotti in Java 6.

è possibile rimuovere \ sposta i file per risolvere il problema, ma potrebbero esserci alcune applicazioni che dipendono da loro.

+0

Spot nel mio caso! Grazie! –

Problemi correlati