在產生這個問題的時候,以為是代碼某個類又改動了。但是對比了git,發現並沒有改動,測試環境代碼照跑,故又重新拉了一份重新部署,仍然報同樣的錯。解決過程中,試了以下網上各種方法,均無效果。
1、包重復、缺失;(都是跑了倆禮拜的項目了,突然少包什么的可能性不大)
2、jdk問題;(設置翻了一遍,發現都是8,也沒有問題)
3、映射文件發生改變。(沒有類的改動,也沒有映射文件的改動,排除)
后來又看見一個解釋,說的是當被調用的方法內部拋出異常未被捕獲時,會拋出這個異常,且通常,拋出InvocationTargetException是NullPointerException;在debug的過程中,發現之前的一個if語句,在
判斷的時候拋出的這個異常:
發現,此處map.get("issued_target")的issued_target我傳入了空值,即此處的值為null。
后來,在控制台,一條條翻看,終於看見具體的報錯信息
所以,此處的問題就是這個判斷拋出的NullPointerException。
解決方法:
判斷改成: "0".equals(map.get("issued_target"))
接着重新編譯,測試,通過。
總結:如果可以排除是環境或者文件問題,不妨查查你的代碼,是否存在*NullPointerException**問題。(另:如果變量可能為null,建議遵循"常量".equals(變量),盡量避免空指針錯誤。)*