Spring Data ElasticSearch坑

前篇

No1.正在搭建ES-MQ-Cache-Demo,該項目是以Spring Boot + Spring Data為核心架構(gòu)開發(fā)。主要流程為通過AOP來記錄用戶日志,通過ActiveMQ Quene將日志放入消息隊列,Consumer消費時將日志全文檢索至ElasticSerach。
No2.用戶能夠正常操作,日志也能夠正常記錄。但是當(dāng)通過API查詢?nèi)罩緯r發(fā)現(xiàn)報空指針異常。

測試()

image.png

可以發(fā)現(xiàn),數(shù)據(jù)是存在的


image.png

F9會發(fā)現(xiàn)拋了空指針異常,很郁悶,明明數(shù)據(jù)是有的,但是為什么會空指針呢?

查問題

測試發(fā)現(xiàn)數(shù)據(jù)是沒有問題。很頭疼,不如我們在這個方法同樣記錄一下日志,看返回值是否正常。
如果返回值正常,則我們測試是否為FastJson解析有問題,如果FastJson解析沒有問題就再深入研究(理論上只可能是FastJson的問題)
@SysLog(日志記錄AOP)


image.png

image.png

發(fā)現(xiàn)結(jié)果是正常返回的,那就手動序列化為Json
結(jié)果:好吧,空指針,說明是FastJson序列化的問題,那我們測試一下Jackson


image.png

結(jié)果:好吧,空指針,說明不一定是序列化的問題(出于對FastJson的不信任,所以拿Jackson測試一下證明)
那我們就深入一下,到底是哪里出了問題
經(jīng)過debug發(fā)現(xiàn),異常出現(xiàn)在這里
image.png

結(jié)果

因為查看日志信息,只能到達write方法,后續(xù)方法是ASM字節(jié)碼組裝而成,無法debug,但通過日志信息科一得到最終的異常是由于AggregatedPageImpl,這個類就是Spring Data Page類的子類AggregatedPageImpl,說明問題出在這個類上。希望以后注意

解決方法

1.自己封裝Page類
2.page.getContent()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容