您好,匿名用户
随意问技术百科期待您的加入

SLF4J: Class path contains multiple SLF4J bindings.

+3 投票

我在j2ee的项目中增加了调用solr的相关jar,tomcat启动时报下面错误:

SLF4J: The requested version 1.6 by your slf4j binding is not compatible with [1.5.5, 1.5.6, 1.5.7, 1.5.8, 1.5.9, 1.5.10]
SLF4J: See http://www.slf4j.org/codes.html#version_mismatch for further details.
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/D:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cdpsn/WEB-INF/lib/slf4j-jdk14-1.6.4.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cdpsn/WEB-INF/lib/slf4j-log4j12-1.5.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/D:/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp1/wtpwebapps/cdpsn/WEB-INF/lib/slf4j-simple-1.5.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
...
2013-1-22 14:32:08 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;[Ljava/lang/Object;Ljava/lang/Throwable;)V
	at org.apache.commons.logging.impl.SLF4JLocationAwareLog.trace(SLF4JLocationAwareLog.java:107)
	at org.springframework.core.CollectionFactory.createConcurrentMapIfPossible(CollectionFactory.java:195)
	at org.springframework.web.context.ContextLoader.<clinit>(ContextLoader.java:153)
	at org.springframework.web.context.ContextLoaderListener.createContextLoader(ContextLoaderListener.java:53)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:44)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
	at org.apache.catalina.core.StandardService.start(StandardService.java:519)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
2013-1-22 14:32:08 org.apache.catalina.core.StandardContext start
严重: Error listenerStart

应该是跟slf4j日志相关,如何解决?

用户头像 提问 2013年 1月16日 @ 切糕 上等兵 (151 威望)
编辑 2013年 1月22日 @切糕
分享到:

1个回答

+2 投票
 
最佳答案

问题自己解决了,原来是项目中的jar包冲突问题。跟SLF4J相关的jar包有jcl-over-slf4j-1.6.4.jar、slf4j-api-1.5.10.jar、slf4j-jdk14-1.6.4.jar、slf4j-log4j12-1.5.10.jar、slf4j-simple-1.5.10.jar,这些jar包之间冲突了。

  1. 去掉jcl-over-slf4j-1.6.4.jar,解决了tomcat不能启动的问题。
  2. 去掉slf4j-jdk14-1.6.4.jar和slf4j-simple-1.5.10.jar,解决“Class path contains multiple SLF4J bindings”的问题。
用户头像 回复 2013年 1月22日 @ 切糕 上等兵 (151 威望)
提一个问题:

相关问题

+1 投票
1 回复 171 阅读
0 投票
0 回复 41 阅读
用户头像 提问 2012年 12月1日 @ Nautilus 上等兵 (223 威望)
0 投票
1 回复 214 阅读
0 投票
0 回复 47 阅读
用户头像 提问 2012年 12月1日 @ Fiora 上等兵 (297 威望)
+2 投票
1 回复 92 阅读
用户头像 提问 2013年 8月25日 @ Karma 上等兵 (229 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...