Spring框架抛出
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)理由是什么呢?
发布于 2011-03-23 18:07:10
原因是添加了错误的库版本(版本冲突)。
检查slf4j的javadoc的版本,并尝试弄清楚,这种方法存在于哪个版本?
发布于 2011-04-15 01:16:07
如果您运行的是OSX,您可能会发现这是因为以下文件包含在java扩展中:
/Library/Java/Extensions/slf4j-api-1.5.8.jar
/Library/Java/Extensions/slf4j-log4j12-1.5.8.jar
这些是由扩展类加载器在应用程序类加载器之前加载的,因此将首先解决这些问题。
我不知道为什么会有这些东西,也不知道它们是什么时候添加的,但我只在OSX和去年看到过,这可能意味着它们是在java6中引入的。
您可以删除\移动这些文件以解决此问题,但可能会有一些应用程序依赖于它们。
发布于 2011-03-23 18:20:13
您的类路径中可能有两个类。
检查类路径中的匹配项。
https://stackoverflow.com/questions/5403525
复制相似问题