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

大家好,我是烤鸭:
     今天分享一下springboot启动后无日志的问题。

1.场景复现


springboot项目启动后卡住无日志,肯定是报错了或者其他原因,并且日志没有打印出来。
    1.1 说一下比较通用常见的场景。
    检查一下 是否 exclude了springboot自带的日志包,放开后可能就有具体的错误原因了。

  <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId><version>2.0.5.RELEASE</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 service [Tomcat],没有打印具体的报错信息

    是具体报错的地方用的日志框架和你本身项目中的冲突了。
    1.2.1 apollo忘记配置
    比如就拿我们项目来说,apollo少配了一个key,项目直接启动失败,只是报了上面的错误信息,没有报出具体报错信息。
    apollo加载的时候用的日志框架或者版本不一致导致的,一般来说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依赖。

Caused by: java.util.ServiceConfigurationError: com.ctrip.framework.apollo.internals.Injector: Providercom.ctrip.framework.apollo.internals.DefaultInjector could not be instantiatedat java.util.ServiceLoader.fail(ServiceLoader.java:232)at java.util.ServiceLoader.access$100(ServiceLoader.java:185)at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)at java.util.ServiceLoader$1.next(ServiceLoader.java:480)at com.ctrip.framework.foundation.internals.ServiceBootstrap.loadFirst(ServiceBootstrap.java:14)at com.ctrip.framework.apollo.build.ApolloInjector.getInjector(ApolloInjector.java:20)... 26 common frames omittedCaused by: com.ctrip.framework.apollo.exceptions.ApolloConfigException: Unable to initialize Guice Injector!at com.ctrip.framework.apollo.internals.DefaultInjector.<init>(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.newInstance(Class.java:442)at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)... 30 common frames omittedCaused 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,具体可以看这篇。
    https://blog.csdn.net/Angry_Mills/article/details/105024664

    同样的pom依赖,在改成lib之后就启动停止,INFO  [class:org.apache.juli.logging.DirectJDKLog | method:log | line:180] logInfo==> Stopping service [Tomcat]
    只能把原来的100多M的jar解压缩后和新方式打的lib目录做对比,最后发现第三方包在循环依赖后打包有问题,大小也不一样。lib目录只打了自己那层,没有打循环依赖那些包,导致加载的时候报错了。
    

2.解决思路


    总结一下,出现的问题场景。
    2.1 springboot 本身日志被排除了,tomcat版本不一致
    2.2 apollo找不到key 由于 commons-logging 版本过高
    2.3 找不到gson包
    2.4 打包lib目录后,循环依赖的包和单次依赖打包大小不一致,导致部分类缺失

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412718.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VMware下Centos7快速搭建vsftpd

最简单快捷的实现ftp的功能,不考虑安全问题. 1.配置防火墙和selinux vi /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX can take one of these three values: # enforcing - SELinux security policy is enforced. # per…

PMP读书笔记(第1章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第一章 引论1.1 概述指南和目的1.1.1 项目管理标准1.1.2 通用词汇1.1.3 道德与专业行为规范1.2 概述指南和目的1.2.1 项目1.2.2 项目管理的重要性1.2.3 项目、项目集、项目组合以及运营管理之间的关…

PMP读书笔记(第2章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第二章 项目运行环境2.1 概述2.2 事业环境因素2.2.1 组织内部的事业环境因素2.2.2 组织外部的事业环境因素2.3 组织过程资产2.3.1 过程、政策和程序2.3.2 组织知识库2.4 组织系统2.4.1 概述2.4.2 组…

do文件的编写(转)

以前在使用ModelSim进行仿真的时候&#xff0c;一直是使用其GUI进行操作的&#xff0c;但是这样很繁琐也很费时。故希望学习其自动化仿真do文件&#xff0c;下面是学习的一些总结。 一、编写基本的do文件 下面按照实际仿真的步骤来说明do文件中需要用到的各个tcl命令。 1、quit…

PMP读书笔记(第4章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第四章 项目整合管理概述项目整合管理的核心概念项目整合管理的发展趋势和新兴实践裁剪时需要考虑的因素在敏捷或适应型环境中需要考虑的因素4.1 制定项目章程4.1.1 制定项目章程&#xff1a;输入4.…

php中foreach循环遍历二维数组

最近在用tp3.2框架&#xff0c;在查询的时候用到了select()&#xff0c;这条语句返回的是二维数组&#xff0c;所以在对返回的数据做处理时&#xff0c;遇到了些麻烦&#xff0c;百度了下foreach&#xff0c;终于用foreach解决了数据的筛选问题 &#xff08;因为不知道该怎么设…

PMP读书笔记(第6章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第六章 项目进度管理项目进度管理项目进度管理的核心概念项目进度管理的发展趋势和新兴实践裁剪考虑因素关于敏捷/适应型环境的考虑因素6.1 规划进度管理6.1.1 规划进度管理&#xff1a;输入6.1.1.1…

connect ECONNREFUSED 151.101.0.133:443 | spawn xxx ENOENT

大家好&#xff1a; 我是烤鸭&#xff0c;今天分享一个node项目打包失败的问题。 1. 问题复现 之前一直出现node项目打包失败的情况&#xff0c;使用测试环境的jenkins没问题&#xff0c;生产的有问题。基本可以排除代码层面的问题。 报错信息如图。另外说一下出现了 con…

Python(八) 函数、模块

函数 定义函数 1、意义&#xff1a;函数是实现某个功能的一些代码&#xff0c;提高代码的复用性。 2、定义:用def关键字定义函数&#xff0c; 3、函数组成&#xff1a;函数由函数名、形参、函数体、调用函数&#xff08;里面会有函数体&#xff09;组成 4、要使用函数&#xff…

PMP读书笔记(第7章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第七章 项目成本管理项目成本管理项目成本管理的核心概念项目成本管理的趋势和新兴实践裁剪考虑因素关于敏捷/适应型环境的考虑因素7.1 规划成本管理7.1.1 规划成本管理&#xff1a;输入7.1.1.1 项目…

PMP 第六版 p25 矩阵图 方便记忆 口诀

大家好&#xff0c;我是烤鸭&#xff1a;     这是我第六版PMP矩阵图和自己总结的方便记忆的方法。 记忆方法&#xff1a; 首先是6大管理过程&#xff0c;10大知识领域。这个需要背下来。 过程&#xff1a;启动-规划-执行-监控-收尾 知识领域&#xff1a;整合-范围-进度-…

IntelliJ Idea注释模板--类注释、方法注释

刚从Eclipse切换到IntelliJ Idea&#xff0c;之前使用eclipse时用到了注释模板&#xff0c;包括类注释和方法注释&#xff0c;现在分别讲一下在Intellij Idea中如何进行配置&#xff0c;作为备忘 一. 类注释模板配置 1. 配置效果 2. 配置方法 【File】-->【settings】-->…

maven 关于使用 snapshot 的坑

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下maven项目引入"快照"版依赖的问题。 1. snapshot 和 realease 顾名思义 就是 快照和稳定版。快照是不稳定的开发版本&#xff0c;不定时更新。稳定版不会有这个问题。 不定时更新有什么危害。 maven install…

PMP读书笔记(第11章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第十一章 项目风险管理项目风险管理项目风险管理的核心概念项目风险管理的趋势和新兴实践裁剪考虑因素在敏捷或适应型环境中需要考虑的因素11.1 规划风险管理11.1.1 规划风险管理&#xff1a;输入11…

PMP读书笔记(第12章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第十二章 项目采购管理项目采购管理项目采购管理的核心概念项目采购管理的趋势和新兴实践裁剪考虑因素在敏捷或适应型环境中需要考虑的因素12.1 规划采购管理12.1.1 规划采购管理&#xff1a;输入12…

奇怪的问题,再次启动jar包会导致bean对象失效?Unknown redis exception Cannot connect, Event executor group is terminated

大家好&#xff0c;我是烤鸭&#xff1a; 踩坑实录。一个某次上线导致的问题&#xff0c;并没有改过什么代码&#xff0c;只是重新上了一次包&#xff0c;没上之前从来没出过这个问题。最开始日志的报错信息一直是 NoClassDefFoundError could not initialize class ,发现是 st…

从Spring到SpringBoot构建WEB MVC核心配置详解

目录 理解Spring WEB MVC架构的演变认识Spring WEB MVC传统时代的Spring WEB MVC新时代Spring WEB MVCSpringBoot简化WEB MVC开发自动装配条件装配外部化配置本章源码下载理解Spring WEB MVC架构的演变 基础Servlet架构核心架构&#xff1a;前端控制器Spring WEB MVC架构认识Sp…

bouncycastle NoSuchFieldError:xxx 版本冲突

大家好&#xff0c;我是烤鸭&#xff1a; bouncycastle NoSuchFieldError:xxx 就是版本冲突了。 这里提示下&#xff0c;冲突有可能不止在项目里&#xff0c;也有可能在jre的lib目录下... 总之就是classpath加载了同样的jar包(不同版本)。如图所示&#xff1a; 项目…

团队项目测评博客

第一部分 调研&#xff0c;评测 评测 安卓端评测 测试人&#xff1a;文垚描述最简单直观的个人第一次上手体验。第一次上手体验&#xff0c;操作简单&#xff0c;界面简洁。课程表与超级课程表差不多&#xff0c;不同课程不同颜色显示&#xff0c;简洁明了。但是整体界面在简洁…

springboot 整合 kafka demo 顺便看一下源码

大家好&#xff0c;我是烤鸭: 今天分享下 springboot 整合 kafka。 1. 环境参数: windows kafka_2.11-2.3.0 zookeeper-3.5.6 springboot 2.3.0 2. 下载安装zookeeper kafka zookeeper: https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.8/apache-zooke…