springboot启动不了也不报错的问题及解决
作者:高 斯林
springboot启动不了也不报错问题
公司用的springboot,随着项目的不断庞大,经常会出现一些稀奇古怪的问题,其实多半是配置文件有问题,但是没有错误提示信息,就很是难受,无从下手,以下列举一些自己遇到的常见的问题处理办法:
案例1
项目启动,控制台只打印了SPRING的日志,然后自动停止
如截图所示:
这种什么错误信息都没有,也是醉了,其实遇到这种情况,可以把启动方法try catch起来即可在控制台显示错误信息
如图所示:
接下来再启动,就会看到错误信息了,笔者的错误是因为配置文件少了一些组件的配置,导致项目启动的时候初始化组件的时候失败了
案例2
启动springboot项目,项目启动日志也在正常的打印控制台,但是刷着刷着,日志停止了,也没有任何错误信息,压根不知道哪里的问题,所以我们要首先解决错误日志输出不了的问题,这样才能定位问题然后处理
日志截图如下:
看到没,没有任何有用信息啊,但是就是启动了一会然后自动停止了。
具体debug找原因的过程我就不说了,其实根本原因就是log4j和common-logs这俩日志包冲突了,解决方法呢,有两种,
第一:解决冲突,排除掉slf4j,common-logs任意一方,spring使用slf4j,那可以排除掉common-logs
第二:打通log4j和common-logs,让它们合二为一即可!maven依赖如下所示:
<dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> </dependency>
这个依赖可以将log4j输出到slf4j,从而从sl4j输出,问题完美解决!有了错误提示,那解决问题就容易多啦!
springboot启动失败不报错,但是报这个No active profile set, falling back to default profiles: default
首先报No active profile set, falling back to default profiles: default是没有配置spring.profiles.active:
解决方案引入对应的文件,在application.yml中引入:
spring: profiles: active: dev
接下来在对应的目录中创建对应的不同环境的yml文件,如下图所示:
此时切换至开发环境,项目运行读取的是application-dev.yml配置,如果需要读取生产环境,将application.yml中的active:dev改成prod即可。如果需要添加更多环境配置。按此操作即可。
springboot启动失败不报错
显示情况如下所示
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.7.4) 2022-12-13 10:18:52.858 INFO 14232 --- [ main] c.k.s.SpringbootDemoApplication : Starting SpringbootDemoApplication using Java 1.8.0_202 on 2F-KF03 with PID 14232 (D:\i-word\springboot-demo\target\classes started by Administrator in D:\i-word\springboot-demo) 2022-12-13 10:18:52.860 INFO 14232 --- [ main] c.k.s.SpringbootDemoApplication : No active profile set, falling back to 1 default profile: "default" 2022-12-13 10:18:53.143 INFO 14232 --- [ main] c.k.s.SpringbootDemoApplication : Started SpringbootDemoApplication in 0.496 seconds (JVM running for 0.992) Process finished with exit code 0
这里是没有引入spring-boot-starter-web所导致,引入对应pom文件即可解决问题
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。