IT行業(yè)一開(kāi)始大多數(shù)人都是沖著高薪而來(lái),但高薪也意味著其并不簡(jiǎn)單。在學(xué)習(xí)的過(guò)程中,有堅(jiān)持下去的也有半途而廢的。
源妹兒發(fā)現(xiàn)很多放棄的學(xué)生都是問(wèn)題解決的能力不足。導(dǎo)致越學(xué)越困難,甚至到最后選擇放棄。在這里為大家總結(jié)下載在后端基于ssm環(huán)境的web項(xiàng)目中,遇到問(wèn)題如何去排查,趕緊拿小本本記好了
01
解決思路
遇到錯(cuò)誤很正常,自己先根據(jù)錯(cuò)誤信息提示排查錯(cuò)誤。好的習(xí)慣就是將遇到的錯(cuò)誤解決之后要懂得記錄
1. 定位錯(cuò)誤
2. 分析錯(cuò)誤
3. 解決錯(cuò)誤
02啟動(dòng)報(bào)錯(cuò)
分析:web項(xiàng)目在啟動(dòng)的時(shí)候會(huì)加載web.xml的配置文件,web.xml還加載了Spring、SpringMvc、Mybatis的配置文件,所以只要有一個(gè)xml文件中出問(wèn)題,都會(huì)導(dǎo)致啟動(dòng)報(bào)錯(cuò)
解決思路:
檢查基本環(huán)境:編譯路徑是否正確?部署是否正確?
檢查各種配置文件:配置是否正確?
看控制臺(tái)錯(cuò)誤信息提示:從下往上找【最下面的錯(cuò)誤就是罪魁禍?zhǔn)?/a>】,找看得懂的異常,找關(guān)鍵字信息
例如1:org.xml.sax.SAXParseException:xml中解析問(wèn)題,看后面是哪一個(gè)xml文件出問(wèn)題。xml解析一般分為SAX解析,和dom解析,所以SAXParseException就是SAX解析異常,在解析xml時(shí)才會(huì)出這個(gè)問(wèn)題。只找關(guān)鍵信息,Caused by:xxx。
只看關(guān)鍵字,分析錯(cuò)誤原因
注意:在tomcat啟動(dòng)的時(shí)候不要只看末尾的信息: Server startup in 2652 ms,上面也有可能報(bào)錯(cuò),拉到控制臺(tái)上面去看下是否有報(bào)錯(cuò)信息
03啟動(dòng)不報(bào)錯(cuò)訪問(wèn)報(bào)錯(cuò)
分析:?jiǎn)?dòng)沒(méi)有報(bào)錯(cuò),那就說(shuō)明xml中除了mapper規(guī)范可能有問(wèn)題,xml的其它配置基本沒(méi)有什么問(wèn)題。所謂mapper規(guī)范問(wèn)題:namespace,id屬性值的問(wèn)題 ,有返回值類型但是沒(méi)有配置resultType
解決思路:
01. 重新訪問(wèn)一下,打開(kāi)瀏覽器控制臺(tái):看請(qǐng)求名稱和請(qǐng)求參數(shù),確定是前端問(wèn)題 還是后端問(wèn)題,將錯(cuò)誤范圍縮小
02. 如果是前端問(wèn)題:看下請(qǐng)求地址是否與控制器中的請(qǐng)求一致,看下請(qǐng)求參數(shù)名是否與后端獲取時(shí)的名字是否一致
03. 如果是后端問(wèn)題:就要看eclipse控制臺(tái)的錯(cuò)誤信息:從下往上找【最下面的錯(cuò)誤就是罪魁禍?zhǔn)住?,找看得懂的異常,找關(guān)鍵字信息
例如1:MySQLSyntaxErrorException = sql拼寫(xiě)錯(cuò)誤,直接去檢查sql映射文件,將錯(cuò)誤信息向后拉,有個(gè)near-附近,這個(gè)左邊和右邊一定會(huì)有問(wèn)題
例如2:空指針異常 = 根據(jù)錯(cuò)誤信息點(diǎn)擊到我們寫(xiě)的代碼中,分析為什么會(huì)為空,然后再解決這個(gè)問(wèn)題
例如3:ssm中很多時(shí)候都是少了@Service注解,導(dǎo)致Controller注入失敗
04沒(méi)有報(bào)錯(cuò)但沒(méi)效果
分析:這種錯(cuò)誤比較難找,一般是編譯工具或者電腦,需要憑經(jīng)驗(yàn)解決
原因分析:
1. 代碼沒(méi)有編譯,看下編譯的問(wèn)題是否重新編譯,然后清理之后再次編譯
2. 編譯時(shí)卡住了,編譯不了。Eclipse有時(shí)就會(huì)出現(xiàn)這種情況,重啟eclipse即可
3. 一啟動(dòng)就顯示debug模式。也是eclipse中常見(jiàn)的問(wèn)題。有的時(shí)候你自己不小心自己在代碼中打了斷點(diǎn),或者eclipse認(rèn)為你的程序有問(wèn)題,編譯器給你打了一個(gè)斷點(diǎn)。這個(gè)時(shí)候可以在eclipse右上角文本開(kāi)給你中輸入break,點(diǎn)擊BreakPoints,點(diǎn)擊雙叉刪除所有的斷點(diǎn)重新啟動(dòng)即可
05總結(jié)
01. 遇到錯(cuò)誤就看2個(gè)地方:
(1) 前端瀏覽器網(wǎng)絡(luò)請(qǐng)求:找出是前端問(wèn)題還是后端問(wèn)題,請(qǐng)求地址,請(qǐng)求參數(shù),響應(yīng)的數(shù)據(jù)
(2) 后端日志log4j和報(bào)錯(cuò)信息,sql語(yǔ)句,參數(shù)等
02. 在桌面上放一個(gè)文檔 – 記錄遇到的問(wèn)題和解決方法。好的方法事半功倍,錯(cuò)誤方法事倍功半。
為感謝大家對(duì)我們的支持,我們準(zhǔn)備了資料大禮包,線上視頻、音頻,隨時(shí)學(xué)習(xí)觀看,免費(fèi)贈(zèng)送給你們,有Java、UI設(shè)計(jì)、H5前端、軟件測(cè)試、產(chǎn)品經(jīng)理學(xué)科的資料。關(guān)注我們的頭條號(hào)或關(guān)注“源碼程序員”公眾號(hào),回復(fù)資料并私信“資料”即可領(lǐng)取哦。
希望在IT行業(yè)里,能幫助到你們~