🗒️记一次服务部署失败问题排查
00 分钟
2022-6-26
2024-6-29
type
status
date
summary
slug
tags
category
password
URL
icon

背景

上周五的时候某一功能本地开发完成后,需要部署到线下环境进行前后端联调。在部署的时候提示“进程反复重启”从而部署失败,在本地启动时代码可以正常启动。

排查过程

首先登录部署的线下机器,查看部署日志,发现日志中提示“war包损坏或失效”。解压war包,提示war包为空,因此应该是构建打包的时候发生了错误(在构建打包时,公司的平台上一直提示的都是构建打包成功,所以一开始以为是编译或者部署的脚本发生了问题,检查后发现都没有问题)。
然后检查构建打包的日志,发现这个地方果然出错了,出错原因为
找到出错原因就好说了,错误提示里已经说明代码中存在不止一个主函数。并且已经在[]中把存在主函数的类标出来了,我们只需要把多余的主函数删除或者在pom文件中指明主函数即可。

解决办法

我这边是因为另一个主函数是无意中带进去的,所以把多余的主函数删掉即可。除了删除多余主函数外,我们还可以在pom文件中指定主函数。或者使用@SpringBootApplication注解都可以。
在pom文件中指定
使用@SpringBootApplication注解
这样也可以解决以上问题。

思考

为什么在IDEA中就能正常启动呢?
notion image
因为IDEA的配置里面显式指定了主函数。
PS:项目构建失败但是公司平台提示构建打包成功误导了我好长时间==
上一篇
Spring Boot项目读取不到配置文件中的“url“属性
下一篇
利用K-均值聚类算法对未标注数据分组