Springboot專案啟動異常排查

一只爱阅读的程序员發表於2024-04-05

一、問題由來

啟動時報錯資訊如下:

Property Detector custom Bean not found with name 'encryptablePropertyDetector'

本地測試時,發現同樣的問題。

二、問題分析

把該問題對應的英文放在白髮翻譯裡面,翻譯結果如下,

未找到名為“encryptablePropertyDetector”的屬性檢測器自定義Bean

自己初步判斷是配置檔案設定錯誤,比如nacos的配置錯誤,導致獲取不到配置,因此啟動時錯誤。

三、解決方案

自己在本地嘗試著修改nacos的配置,經過測試發現redis沒有啟動。

然後啟動redis之後,發現還是不能啟動。經過仔細排查,使用的配置是遠端連線的配置,不是本地的配置。

然後立馬修改,重啟啟動,服務啟動成功!

然後重新打包,將jar包上傳到伺服器,重新啟動服務,發現還是同樣的問題。這就很奇怪了,

本地可以正常啟動,伺服器上怎麼就不行呢?對於配置相關的內容,自己可以很肯定是沒問題。

伺服器上的nacos都已經正常執行起來,該修改的配置都已經全部修改完成。

最後自己突然想起一件事情,那就是nacos的配置修改之後,需要重新啟動,否則更改後的配置就不會生效。

然後自己重新啟動nacos,然後重新啟動服務。

服務終於啟動成功!

遇到的問題:

伺服器記憶體快達到100%之後,伺服器會拒絕連線,其他服務也不能正常使用,伺服器直接拒絕遠端連線。

最終只能重新啟動阿里雲伺服器。

然後修改問題,修改nacos啟動引數。

docker run --name=nacos -e JVM_XMS=256m -e JVM_XMX=256m -e MODE=standalone -p 8848:8848 -v /opt/u01/exam/nacos/application.properties:/home/nacos/conf/application.properties -v /opt/u01/exam/nacos/logs:/home/nacos/logs -d 938169b118c7

新增這兩個引數:-e JVM_XMS=256m 表示jvm啟動時分配的記憶體;-e JVM_XMX=256m 表示jvm執行過程中分配的最大記憶體。

然後在重新啟動所有服務,整個伺服器可以正常執行。

參考部落格

https://blog.csdn.net/heyu996/article/details/132366586

相關文章