iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >springboot启动后卡住无日志的情况有哪些
  • 641
分享到

springboot启动后卡住无日志的情况有哪些

2023-06-22 03:06:40 641人浏览 安东尼
摘要

这篇文章主要介绍了SpringBoot启动后卡住无日志的情况有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.场景复现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 不太常见的场景

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

springboot启动后卡住无日志的情况有哪些

或者直接打印 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 instantiated
at 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 omitted
Caused 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 omitted
Caused 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 service [Tomcat]

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

2.解决思路

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

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

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

3 找不到gson包

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

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

感谢你能够认真阅读完这篇文章,希望小编分享的“springboot启动后卡住无日志的情况有哪些”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: springboot启动后卡住无日志的情况有哪些

本文链接: https://www.lsjlt.com/news/302197.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springboot启动后卡住无日志的情况有哪些
    这篇文章主要介绍了springboot启动后卡住无日志的情况有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.场景复现springboot项目启动后卡住无日志,肯定是报...
    99+
    2023-06-22
  • springboot启动后卡住无日志的几种情况小结
    目录1.场景复现1.1 说一下比较通用常见的场景1.2 不太常见的场景2.解决思路总结一下,出现的问题场景今天分享一下springboot启动后无日志的问题。 1.场景复现 spri...
    99+
    2024-04-02
  • 解决复制springboot项目后,启动日志无颜色的问题
    复制springboot项目后,启动日志无颜色 把之前的springboot项目复制到idea后,启动日志无颜色,这是因为复制过来的项目并没有选择springboot模板,需要做下简...
    99+
    2024-04-02
  • springboot 项目启动后无日志输出直接结束的解决
    目录前景概要报错如下图解决方案以下内容也是因为这个应用名被修改后会出先的问题初始化spring bean 以及 sqlsession解决前景概要 在这个之前service_...
    99+
    2024-04-02
  • windows声卡驱动有问题会出现哪些情况
    本篇内容介绍了“windows声卡驱动有问题会出现哪些情况”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一...
    99+
    2023-02-07
    windows
  • oracle标识符无效的情况有哪些
    在Oracle中,标识符无效的情况有以下几种情况:1. 包含非法字符:标识符必须由字母、数字和下划线组成,并且必须以字母开头。如果标...
    99+
    2023-08-08
    oracle
  • springboot启动时没有日志的原因分析
    springboot启动没有日志 1、application配置文件是否指定日志文件 2、日志文件里指向的环境是否是当前的运行环境 idea SpringBoot启动失败 无日志(控...
    99+
    2024-04-02
  • springboot项目启动后的执行方法有哪些
    今天小编给大家分享一下springboot项目启动后的执行方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1 方法A...
    99+
    2023-07-02
  • springboot启动时没有日志的原因是什么
    这篇文章主要介绍“springboot启动时没有日志的原因是什么”,在日常操作中,相信很多人在springboot启动时没有日志的原因是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”springboot启...
    99+
    2023-06-20
  • 如何解决springboot项目启动后无日志输出直接结束的问题
    这篇文章主要介绍了如何解决springboot项目启动后无日志输出直接结束的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前景概要在这个之前service_edu子模块下...
    99+
    2023-06-22
  • debian安装后无法启动的原因有哪些
    安装过程中出现了错误,导致系统无法正确安装; 硬件兼容性问题,某些硬件设备与Debian系统不兼容,导致系统无法启动; 磁盘空间不...
    99+
    2024-03-15
    debian
  • 美国服务器无法正常使用的情况有哪些
    美国服务器无法正常使用的情况有:1、美国服务器硬件设备出现故障导致;2、美国服务器搭建的网站程序使服务器负担过重导致;3、业务规模扩大,美国服务器无法满足当前业务需求时导致;4、其他问题,如服务器受到攻击、机房环境、网络环境等因素所导致。具...
    99+
    2024-04-02
  • weblogic无法启动的原因有哪些
    WebLogic无法启动的原因有很多,以下是一些可能的原因: 配置错误:WebLogic的配置文件可能存在错误,比如JDBC数据源...
    99+
    2023-10-27
    weblogic
  • 电脑开机后蓝屏的情况有哪些及怎么解决
    本文小编为大家详细介绍“电脑开机后蓝屏的情况有哪些及怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“电脑开机后蓝屏的情况有哪些及怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。情况一:普通故障,即硬...
    99+
    2023-06-27
  • centos网卡启动不了的原因有哪些
    CentOS网卡启动不了的原因可能有以下几种: 驱动问题:网卡驱动未正确安装或不兼容操作系统版本。 网络配置问题:网卡配置文件中存...
    99+
    2023-10-25
    centos
  • java后台启动jar包的命令有哪些
    本篇内容介绍了“java后台启动jar包的命令有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!java后台启动jar包启动方式一在jar...
    99+
    2023-07-05
  • ubuntu无法正常启动的原因有哪些
    以下是一些常见的导致Ubuntu无法正常启动的原因: 损坏的启动文件:启动文件可能被损坏或删除,导致系统无法正常启动。 错误...
    99+
    2023-10-22
    ubuntu
  • MySQL服务无法启动的原因有哪些
    MySQL服务无法启动的原因可能有以下几种:1. 配置文件错误:MySQL的配置文件(my.cnf)中可能存在错误,如数据库路径、端...
    99+
    2023-09-26
    MySQL
  • docker无法启动容器的方法有哪些
    检查容器状态:使用命令docker ps -a查看所有容器的状态,找出无法启动的容器,了解具体的错误信息。 检查日志:使用命...
    99+
    2024-04-02
  • docker容器无法启动的原因有哪些
    容器镜像不存在或损坏:如果容器的镜像不存在或损坏,就无法启动容器。可以使用docker images命令查看本地已有的镜像,使用...
    99+
    2023-10-27
    docker
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作