码迷,mamicode.com
首页 > Web开发 > 详细

【原】Could not initialize class org.apache.log4j.Log4jLoggerFactory

时间:2018-08-08 19:27:32      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:div   logger   tree   http   log4   src   -o   时间   cto   

  • 现象:正常运行的项目,从Jenkins迁到容器云上不能正常启动,报错误如下:
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.Log4jLoggerFactory         

    缺Log4j不可能,绝对不可能,同个版本的代码刚刚还在Jenkins上起来的。怎么办,仔细读下日志,发现有如下提示:

技术分享图片

技术分享图片

    很明显了,看来是log4j-over-slf4j.jar 和 slf4j-log4j12.jar 不能在同一个class path。

         

  • 解决:
  1. 利用maven找jar包冲突,执行依赖树命令,用 omitted for conflict with 检索。
mvn -X compile dependency:tree -Dverbose >a.log

   2. 排除依赖,即可。

<dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-cas</artifactId>
                <version>${spring.security.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>log4j-over-slf4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>jul-to-slf4j</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

 

  • 思考:
  1. 为什么之前Jenkins上能正常启动?猜测是tomcat8和tomcat7的区别吧。这是我这边看到的差别。最近很忙,留个思考题以后抽时间确认下。TODO
  2. 遇到问题看日志信息还是非常重要!

 

【原】Could not initialize class org.apache.log4j.Log4jLoggerFactory

标签:div   logger   tree   http   log4   src   -o   时间   cto   

原文地址:https://www.cnblogs.com/cooqer/p/9444009.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!