異常解決SpringBoot項(xiàng)目啟動(dòng)卡住,無任何異常信息問題
項(xiàng)目場景
SpringBoot項(xiàng)目啟動(dòng)的時(shí)候Console控制臺(tái)日志打印卡住,無任何異常信息打印
問題描述
之前項(xiàng)目是好的,但是后面經(jīng)人寫了一部分代碼之后,項(xiàng)目啟動(dòng)不了
SpringBoot項(xiàng)目啟動(dòng)時(shí)直接卡住,日志也不打印,也沒有具體的異常信息,某位同事折騰一天。
原因分析
之前我遇到過類似的問題。
現(xiàn)在我把我所有的問題分析列在下面:
- 有可能是改動(dòng)了pom.xml文件,項(xiàng)目沒有徹底更新,導(dǎo)致引入的jar存在版本問題或者根本沒有引入進(jìn)來
- 項(xiàng)目是Debug模式啟動(dòng),然后有一些特殊的斷點(diǎn)導(dǎo)致項(xiàng)目啟動(dòng)卡住
- 項(xiàng)目的目錄結(jié)構(gòu)變更,導(dǎo)致某些bean沒有被加載到?或者加載了多個(gè)相同的bean
- 某些異常沒有被捕獲到,同時(shí)啟動(dòng)類里面也沒有加上全局的try-catch,導(dǎo)致項(xiàng)目卡住
- 部分代碼需要隨程序自啟,使用@PostConstruct、InitializingBean、ApplicationRunner等方式實(shí)現(xiàn)項(xiàng)目初始化時(shí)加載,如果有遠(yuǎn)程連接,而且連接失敗或者異常了,沒有try-catch,也容易導(dǎo)致啟動(dòng)程序卡死。
解決方案
針對上述列出來的分析,我們可以采用以下解決方案,一步步嘗試
- 1.如果是pom.xml變更了沒生效,我們只需要對pom.xml 重新import即可,另外可以考慮清除idea緩存
- 2.如果是debug模式的斷點(diǎn)引起的話,去掉所有斷點(diǎn)再試試
- 3.如果是項(xiàng)目目錄結(jié)構(gòu)變更,這個(gè)maven clean一下,重新install 即可
- 4.如果可以變更啟動(dòng)類的話,建議在開發(fā)階段對啟動(dòng)類的main方法里面的代碼加上try-catch,這樣啟動(dòng)項(xiàng)目的時(shí)候就知道具體異常是什么
- 5.如果說分析哪些程序自啟的代碼導(dǎo)致項(xiàng)目啟動(dòng)卡住的話,我建議查看項(xiàng)目啟動(dòng)快照,具體如下:

分析當(dāng)前主線程到底因?yàn)槭裁纯ㄗ?waiting),比如我這里是因?yàn)閿?shù)據(jù)源配置的有問題導(dǎo)致卡住
最終解決方案
6、如果上述方案都無法解決問題,那么可以查看項(xiàng)目啟動(dòng)日志文件,一般和項(xiàng)目同級(jí)目錄或者有個(gè)log目錄存儲(chǔ),里面會(huì)記錄所有信息/異常信息
例如:這里是我同事的異常:


異常分析:
是因?yàn)樗麖牧硗庖粋€(gè)項(xiàng)目copy過來的mapper.xml文件,之前用的是mybatis,現(xiàn)在項(xiàng)目用的ibatis,不識(shí)別<where>標(biāo)簽,ibatis只支持<dynamic prepend="where"> 來用
改成ibatis識(shí)別的方式即可。 這里注重給大家講怎么去找到并分析異常。
總結(jié)
項(xiàng)目啟動(dòng)卡住了,肯定是有異常原因存在,我們需要的是沉著冷靜,一步步找問題所在。
另外就是大家在CV代碼時(shí),尤其是兩個(gè)不同的項(xiàng)目的時(shí)候,一定要注意細(xì)節(jié)?。?/p>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- springboot項(xiàng)目啟動(dòng)自動(dòng)跳轉(zhuǎn)到瀏覽器的操作代碼
- SpringBoot項(xiàng)目啟動(dòng)后立馬自動(dòng)關(guān)閉的解決方案
- springboot項(xiàng)目啟動(dòng)的時(shí)候,運(yùn)行main方法報(bào)錯(cuò)NoClassDefFoundError問題
- 詳解springboot項(xiàng)目啟動(dòng)時(shí)如何排除用不到的bean
- 解決springboot項(xiàng)目啟動(dòng)報(bào)錯(cuò)Field xxxMapper in com...xxxController required
相關(guān)文章
IDEA提示內(nèi)存不足low memory的錯(cuò)誤解決
運(yùn)行項(xiàng)目變得很卡,這種情況比較能直觀感受出來,Idea內(nèi)存指示器,則需要設(shè)置才能看到,本文主要介紹了IDEA提示內(nèi)存不足low memory的錯(cuò)誤解決,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03
Java常見基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)
這篇文章主要介紹了Java常見數(shù)據(jù)結(jié)構(gòu)面試題,帶有答案及解釋,希望對廣大的程序愛好者有所幫助,同時(shí)祝大家有一個(gè)好成績,需要的朋友可以參考下,希望可以幫助到你2021-07-07
Java Spring的依賴注入理解及@Autowired用法示例詳解
文章介紹了Spring依賴注入(DI)的概念、三種實(shí)現(xiàn)方式(構(gòu)造器、Setter、字段注入),區(qū)分了@Autowired(注入Bean)與@Value(注入簡單類型)的用途,并說明@Bean方法參數(shù)可自動(dòng)裝配依賴,無需顯式注解,感興趣的朋友跟隨小編一起看看吧2025-07-07
解決springboot啟動(dòng)時(shí)報(bào)錯(cuò)的問題ApplicationEventMulticaster not&nbs
這篇文章主要介紹了解決springboot啟動(dòng)時(shí)報(bào)錯(cuò)的問題ApplicationEventMulticaster not initialized,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-06-06
深入理解Spring MVC的數(shù)據(jù)轉(zhuǎn)換
這篇文章主要給大家介紹了關(guān)于Spring MVC數(shù)據(jù)轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起看看吧。2017-09-09
Springboot集成RabbitMQ并驗(yàn)證五種消息模型
RabbitMQ 提供了5種常用消息模型,本文主要介紹了Springboot集成RabbitMQ并驗(yàn)證五種消息模型,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03

