org.slf4j.spi.LocationAwareLogger.log

来源:互联网 发布:java递归排序问题 编辑:程序博客网 时间:2024/06/06 07:47

Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker


jar:file:/C:/Users/Administrator/.m2/repository/com/salesforce/phoenix-client/2.2.2/phoenix-client-2.2.2.jar!/org/slf4j/spi/LocationAwareLogger.classException in thread "main" 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.debug(SLF4JLocationAwareLog.java:133)    at org.springframework.core.env.AbstractEnvironment.<init>(AbstractEnvironment.java:114)    at org.springframework.core.env.StandardEnvironment.<init>(StandardEnvironment.java:54)    at org.springframework.context.support.AbstractApplicationContext.createEnvironment(AbstractApplicationContext.java:427)    at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:227)    at org.springframework.context.support.AbstractRefreshableApplicationContext.<init>(AbstractRefreshableApplicationContext.java:90)    at org.springframework.context.support.AbstractRefreshableConfigApplicationContext.<init>(AbstractRefreshableConfigApplicationContext.java:59)    at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:61)    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:136)    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)

这是一个jar包冲突的问题,项目中引用了一个变态的jar包,这个jar包打了许多第三方包在里面,导致了冲突。

可以通过下面的方法确认冲突发生在那个包中:

URL urlOfClass = App.class.getClassLoader().getResource("org/slf4j/spi/LocationAwareLogger.class");        System.out.println(urlOfClass);

这个输出中会有具体的jar包。找到冲突的jar包之后可以有两种方法来解决问题。

  1. 通过修改jar包的内容,删除不必要的第三方包,这有一定风险,但可行
  2. 将这个冲突包放在引用的最后位置,这样,他的第三方包就永远不会被用到,除非项目中没有他的第三方包

我的解决办法是将打印出来的jar包删除掉,问题解决。

0 0
原创粉丝点击