sprinboot項目啟動一半到圖形化界面卡住了的解決
sprinboot項目啟動一半到圖形化界面卡住
問題
有一個新項目需要從舊項目摘出去,于是新配了一個環(huán)境,結(jié)果結(jié)果放到測試環(huán)境去的時候,他居然卡住了,而且沒有任何輸出就卡在圖形化界面了,生平第一次見。
解決
重新打了很多次的包,還是不行。??
真是一個bug能占我一天(我要堅強),最后讓大佬看了一下,十分鐘就解決了。
這里發(fā)現(xiàn)的問題是因為日志的配置有問題,之前配置文件就那么幾個,也沒注意到 logback-spring.xml 配置文件里面有一個環(huán)境的配置。
紅框為之前的測試環(huán)境,綠框為這次新增的環(huán)境。
比如application-test.yml,那么這里配置的就是 name=“test”。
像這種卡住了,一般不會是說數(shù)據(jù)庫連不上,因為連不上就報sql錯誤了。說什么 啟動類加上 注解的,也試過。但是這個一點日志出不來的,肯定是和日志有關(guān)系。遇到不會的就要虛心去問。
sprinboot項目啟動卡住,無任何異常信息
項目場景
SpringBoot項目啟動的時候Console控制臺日志打印卡住,無任何異常信息打印
問題描述
之前項目是好的,但是后面經(jīng)人寫了一部分代碼之后,項目啟動不了,SpringBoot項目啟動時直接卡住,日志也不打印,也沒有具體的異常信息,某位同事折騰一天。
原因分析
之前我遇到過類似的問題。現(xiàn)在我把我所有的問題分析列在下面:
有可能是改動了pom.xml文件,項目沒有徹底更新,導致引入的jar存在版本問題或者根本沒有引入進來
項目是Debug模式啟動,然后有一些特殊的斷點導致項目啟動卡住
項目的目錄結(jié)構(gòu)變更,導致某些bean沒有被加載到?或者加載了多個相同的bean
某些異常沒有被捕獲到,同時啟動類里面也沒有加上全局的try-catch,導致項目卡住
部分代碼需要隨程序自啟,使用@PostConstruct、InitializingBean、ApplicationRunner等方式實現(xiàn)項目初始化時加載,如果有遠程連接,而且連接失敗或者異常了,沒有try-catch,也容易導致啟動程序卡死。
解決方案
針對上述列出來的分析,我們可以采用以下解決方案,一步步嘗試
如果是pom.xml變更了沒生效,我們只需要對pom.xml 重新import即可,另外可以考慮清除idea緩存
如果是debug模式的斷點引起的話,去掉所有斷點再試試
如果是項目目錄結(jié)構(gòu)變更,這個maven clean一下,重新install 即可
如果可以變更啟動類的話,建議在開發(fā)階段對啟動類的main方法里面的代碼加上try-catch,這樣啟動項目的時候就知道具體異常是什么
如果說分析哪些程序自啟的代碼導致項目啟動卡住的話,我建議查看項目啟動快照,具體如下:
分析當前主線程到底因為什么卡住(waiting),比如我這里是因為數(shù)據(jù)源配置的有問題導致卡住
最終解決方案:6、如果上述方案都無法解決問題,那么可以查看項目啟動日志文件,一般和項目同級目錄或者有個log目錄存儲,里面會記錄所有信息/異常信息
例如:這里是我同事的異常:
異常分析:是因為他從另外一個項目copy過來的mapper.xml文件,之前用的是mybatis,現(xiàn)在項目用的ibatis,不識別<where>標簽,ibatis只支持<dynamic prepend="where"> 來用
改成ibatis識別的方式即可。 這里注重給大家講怎么去找到并分析異常。
總結(jié)
項目啟動卡住了,肯定是有異常原因存在,我們需要的是沉著冷靜,一步步找問題所在。另外就是大家在CV代碼時,尤其是兩個不同的項目的時候,一定要注意細節(jié)??!
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java數(shù)據(jù)結(jié)構(gòu)中的HashMap和HashSet詳解
HashMap和HashSet都是存儲在哈希桶之中,通過本文我們可以先了解一些哈希桶是什么,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友參考下吧2023-10-10淺談SpringMVC的攔截器(Interceptor)和Servlet 的過濾器(Filter)的區(qū)別與聯(lián)系 及Spr
這篇文章主要介紹了淺談SpringMVC的攔截器(Interceptor)和Servlet 的過濾器(Filter)的區(qū)別與聯(lián)系 及SpringMVC 的配置文件,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-07-07使用spring?security?BCryptPasswordEncoder接入系統(tǒng)
這篇文章主要介紹了使用spring?security?BCryptPasswordEncoder接入系統(tǒng)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08JavaCV調(diào)用百度AI實現(xiàn)人臉檢測方法詳解
在檢測人臉數(shù)量、位置、性別、口罩等場景時,可以考慮使用百度開放平臺提供的web接口,一個web請求就能完成檢測得到結(jié)果。本文就為大家介紹JavaCV如何調(diào)用百度AI實現(xiàn)最簡單的人臉檢測,需要的可以參考一下2022-01-01