首页 > 作文

springboot启动后卡住无日志的几种情况小结

更新时间:2023-04-04 03:54:14 阅读: 评论:0

目录
1.场景复现1.1 说一下比较通用常见的场景1.2 不太常见的场景2.解决思路总结一下,出现的问题场景

今天分享一下springboot启动后无日志的问题。

1.场景复现

springboot项目启动后卡住无日志,肯定是报错了或者其他原因,并且日志没有打印出来。

1.1 说一下比较通用常见的场景

检查一下 是否 exclude了springboot自带的日志包,放开后可能就有具体的错误原因了。

  <dependency>        <groupid>org.springframework.boot</groupid>        <artifactid>spring-boo母亲节文案图片t-starter</artifactid>        <version>2.0.5.relea</version>        <exclusions>            <exclusion>                <groupid>org.springframework.boot</groupid>                <artifactid>spring-boot-starter-logging</artifactid>            </exclusion>        </exclusions>    </dependency>

1.2 不太常见的场景

加载到如下图的地方,直接停了。

或者直接打印 info [class:org.apache.juli.logging.directjdklog | method:log | line:180] loginfo==> stopping rvice [tomcat],没有打印具体的报错信息

是具体报错的地方用的日志框架和你本身项目中的冲突了。

1.2.1 apollo忘记配置

比如就拿我们项目来说,apollo少配了一个key,项目直接启动失败,只是报了上面的错误信息,没有报出具体报错信息。

apo军事训练科目llo加载的时候用的日志框架或者版本不一致导致的,一般来说log4j,slf4j,logback这些都会引用,但是版本很难统一,尤其引用了其他的第三方包。

在apollo那个问题上,将commons-logging的冲突解决后保留 1.1.1 版本,就打印出报错信息了。

<dependency>  <groupid>commons-logging</groupid>  <artifactid>commons-logging</artifactid>  <version>1.1.1</version></dependency>

1.2.2 tomcat版本冲突

去除第三方引用的不同版本的tomcat依赖,仅保留一个

    <exclusions>        <exclusion>            <artifactid>spring-boot-starter-tomcat</artifactid>            <groupid>org.springframework.boot</groupid>        </exclusion>        <exclusion>            <artifactid>spring-boot-starter-web</artifactid>            <groupid>org.springframework.boot</groupid>        </exclusion>    </exclusions>

1.2.3 apollo引用的包找不到

找不到 gson 包,这个和上面那个类似,也是apollo加载的时候失败了,后来日志打印出来了,问题也比较好找,加上gson依赖。

caud by: java.util.rviceconfigurationerror: com.ctrip.framework.apollo.internals.injector: providercom.ctrip.framework.apollo.internals.defaultinjector could not be instantiated
at java.util.rviceloader.fail(rviceloader.java:232)
at java.util.rviceloader.access$100(rviceloader.java:185)
at java.util.rviceloader$lazyiterator.nextrvice(rviceloader.java:384)
at java.util.rviceloader$lazyiterator.next(rviceloader.j必修二英语单词ava:404)
at java.util.rviceloader$1.next(rviceloader.java:480)
at com.ctrip.framework.foundation.internals.rvicebootstrap.loadfirst(rvicebootstrap.java:14)
at com.ctrip.framework.apollo.build.apolloinjector.getinjector(apolloinjector.java:20)
… 26 common frames omitted
caud by: com.ctrip.framework.apollo.exceptions.apolloconfigexception: unable to initialize guice injector!
at com.ctrip.framework.apollo.internals.defaultinjector.<in教资考试安排it>(defaultinjector.java:30)
at sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method)
at sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:62)
at sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45)
at java.lang.reflect.constructor.newinstance(constructor.java:423)
at java.lang.class.newinst麻油的做法ance(class.java:442)
at java.util.rviceloader$lazyiterator.nextrvice(rviceloader.java:380)
… 30 common frames omitted
caud by: com.google.common.util.concurrent.executionerror: com.google.common.util.concurrent.executionerror: java.lang.noclassdeffounderror: lcom/google/gson/gson;

1.2.4 项目改成打包lib目录后,部分包打包不完整

这个问题是最棘手了,找了一天,之前由于项目打jar包过大,想把jar和第三方不常用的包分开,打成jar和lib,。

同样的pom依赖,在改成lib之后就启动停止

info [class:org.apache.juli.logging.directjdklog | method:log | line:180] loginfo==> stopping rvice [tomcat]

只能把原来的100多m的jar解压缩后和新方式打的lib目录做对比,最后发现第三方包在循环依赖后打包有问题,大小也不一样。lib目录只打了自己那层,没有打循环依赖那些包,导致加载的时候报错了。

2.解决思路

总结一下,出现的问题场景

2.1 springboot 本身日志被排除了,tomcat版本不一致

2.2 apollo找不到key 由于 commons-logging 版本过高

2.3 找不到gson包

2.4 打包lib目录后,循环依赖的包和单次依赖打包大小不一致,导致部分类缺失

如果项目是个新项目,搭建工程的时候尽量保证使用的第三方包的兼容性。如果是老的项目,加新包的时候要注意,尽量避免冲突,以之前的包为准。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。

本文发布于:2023-04-04 03:54:13,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/9a9890e1cfa43654638f0488b1e9bb91.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:springboot启动后卡住无日志的几种情况小结.doc

本文 PDF 下载地址:springboot启动后卡住无日志的几种情况小结.pdf

标签:场景   项目   第三方   版本
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图