1
Caused by: java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND slf4j-log4j12.jar on the class path, preempting StackOverflowError
原因:log4j-over-slf4j.jar 和 slf4j-log4j12.jar不能同时引入,造成死循环
解决:删除pom里面的slf4j-log4j12依赖,仍然没有解决问题。这里主要是因为spring-boot-starter-logging里面引入了log4j-over-slf4j依赖,在webmagic里面又引入了slf4j-log4j12依赖。所以只能去除webmagic中的slf4j-log4j12依赖。
<!-- webmagic框架支持 -->
<dependency>
<groupId>us.codecraft</groupId>
<artifactId>webmagic-core</artifactId>
<version>0.5.2</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>us.codecraft</groupId>
<artifactId>webmagic-extension</artifactId>
<version>0.5.2</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
用exclusion去除依赖中的其他依赖