更新代码后项目莫名其妙的无法启动,尝试重启仍无效,进入debug查看报错原因。
1、在WebApplication.java的main方法中加断点,然后F7 or F8进入。最终在SpringApplication.java的325行handleRunFailure进入错误。
catch (Throwable ex) {
handleRunFailure(context, ex, exceptionReporters, listeners);
throw new IllegalStateException(ex);
}
错误显示 application.yml 有误,但和同事确认之后发现.yml没问题。
Failed to load property source from location 'classpath:/application.yml'
found character '@' that cannot start any token. (Do not use @ for indentati
2、经过网上查找问题,在这篇文章的评论处发现有个同行评论:
SpringBoot中出现’@’ that cannot start any token. (Do not use @ for
indentation)…@悟逆而行:我每次切换配置文件会遇到这个问题,刷新下maven就可以了
3、于是刷新maven,发现
SpringApplication.java的*handleRunFailure()*错误提示变更为 433端口被占用
Port 443 is already in use
查询占用该端口程序:cmd →
netstat -ano|findstr "433"
发现是vmware-hostd.exe 虚拟机,任务管理器杀死该进程后重启springboot,正常启动
总结
之前根本没出现问题,今天这浪费了我一个多小时才搞定
遇到问题:刷新试试,重启试试,重启后再刷新试试。。。
PS:
原来是写完才反应过来,端口怎么变成了433。一问同事才知道,原来他们修改了.yml。WTF,不是给我说yml没问题的嘛。
本文记录了一次SpringBoot项目更新代码后无法启动的问题排查过程,包括定位到application.yml配置文件错误提示、解决由maven缓存导致的问题以及处理端口冲突的情况。
988

被折叠的 条评论
为什么被折叠?



