美文网首页
记录一次logback与log4j冲突tomcat启动不了的问题

记录一次logback与log4j冲突tomcat启动不了的问题

作者: 禅兜 | 来源:发表于2018-08-30 10:46 被阅读0次

    今天liunx上面启动tomcat的时候报如下错误
    SEVERE: Failed to load class com.mysql.jdbc.NonRegisteringDriver during Tomcat start to prevent possible memory leaks.
    java.lang.ClassNotFoundException: com.mysql.jdbc.NonRegisteringDriver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    在查询了catalina.out里面,也只有报这个错误的信息,也没有其他错误的信息.
    百度了一遍,始终还是没有找到相关解决的问题,说实在话排查问题最怕的就是什么错误信息都没有,再找问题。
    在查询了
    https://stackoverflow.com/questions/24850091/the-web-application-registered-the-jdbc-driver-com-mysql-jdbc-driver-but-fa
    帖子后

    image.png
    查询到自己的server.xml里面有也有添加相关的配置(相关配置是从其他应用配置复制过来修改过端口号的),具体这个配置的作用还不是很清楚,貌似也没有解决这个问题。排查问题总是痛苦了,仔细的检查了相关的配置也没有问题。后面直接向server.xml里面的classesToInitialize="com.mysql.jdbc.NonRegisteringDriver" 这个配置项删除了。在重启启动,居然没有再报相关错误,惊喜的时候,发起自己的应用还是没有启动起来。在catalina.out里面只有具体的错误日志,只提示监听启动EROR错误,
    org.apache.catalina.core.StandardContext startInternal
    SEVERE: Error listenerStart
    org.apache.catalina.core.StandardContext startInternal
    SEVERE: Context [/******] startup failed due to previous errors
    又陷入了问题当中。在相关同事的建议下,最好是打开应用的debug模式,启动下查看具体报错的问题。
    百度到https://blog.csdn.net/wsm0712syb/article/details/50946409这个文章
    在WEB-INF/classes目录下新建一个文件叫logging.properties,内容如下
    handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler  
    
    org.apache.juli.FileHandler.level = FINE  
    org.apache.juli.FileHandler.directory = ${catalina.base}/logs  
    org.apache.juli.FileHandler.prefix = error-debug.   
    
    java.util.logging.ConsoleHandler.level = FINE  
    java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter 
    

    配置好后,重启启动下tomcat,查询日志,终于看到了错误信息,真是不容易呀


    image.png

    总错误信息cannot be cast to ch.qos.logback.classic.LoggerContext
    分析应该是logback与log4j的包有冲突造成的,于是在应用的lib目录下查询果然有log4j的包,找到了具体的原因,就是需要解决包冲突的问题,将相关问题反馈给同事后解决,重新打包后,再次启动,久违的成功日志终于出现了,真是不容易呀。
    总结经验
    1.从提示的信息入手,查询检查相关的配置,避免copy的时候,忘记修改某些参数引起异常
    2.在开发测试阶段一定要把debug模式打开

    相关文章

      网友评论

          本文标题:记录一次logback与log4j冲突tomcat启动不了的问题

          本文链接:https://www.haomeiwen.com/subject/mnvkwftx.html