java - websocket 服務(wù)端onMessage()方法一操作數(shù)據(jù)庫(kù)就報(bào)空指針異常
問(wèn)題描述
想用websocket實(shí)現(xiàn)新消息提醒功能,就比如a發(fā)了一篇文章然后有人回復(fù)了a,當(dāng)a上線(xiàn)時(shí)出現(xiàn)消息提醒,如下圖
后臺(tái)的onMessage()方法中若是直接用session.getBasicRemote().sendText('haha');是可以正常運(yùn)行的,可是一操作數(shù)據(jù)庫(kù)就出了空指針異常..
前端js處理:
有遇到過(guò)相同問(wèn)題的人嗎?求告知..
問(wèn)題解答
回答1:這個(gè)空指針和 weosocket 無(wú)關(guān),應(yīng)該是你 messageService 實(shí)例的依賴(lài)注入有問(wèn)題。應(yīng)該檢查一下你的 MessageService 是否被 IOC 容器托管,即類(lèi)上是否加了 @Service 或者 @Component 注解。
回答2:開(kāi)發(fā)過(guò)程中,某個(gè)未被spring托管的類(lèi)(例如MessageController)想調(diào)用一個(gè)被spring托管的對(duì)象的方法(例如MessageService對(duì)象),如果我們像下面代碼的方式去調(diào)用方法,則會(huì)出現(xiàn)空指針的異常。
解決方法:
使用ApplicationHelper獲取所需的MessageService對(duì)象
相關(guān)文章:
1. php - 請(qǐng)問(wèn)大批量數(shù)據(jù)處理,如何分割?2. html5和Flash對(duì)抗是什么情況?3. MySQL主鍵沖突時(shí)的更新操作和替換操作在功能上有什么差別(如圖)4. javascript - vue過(guò)渡效果 css過(guò)渡 類(lèi)名的先后順序5. css右浮動(dòng)字的順序顛倒了6. 數(shù)據(jù)庫(kù) - Mysql的存儲(chǔ)過(guò)程真的是個(gè)坑!求助下面的存儲(chǔ)過(guò)程哪里錯(cuò)啦,實(shí)在是找不到哪里的問(wèn)題了。7. ios - 類(lèi)似微博首頁(yè),一張圖的時(shí)候是如何確定圖大小的?8. javascript - vuejs+elementui 購(gòu)物車(chē)價(jià)格計(jì)算,點(diǎn)擊加減號(hào)修改數(shù)量總價(jià)都不會(huì)改變,但是計(jì)算執(zhí)行了9. javascript - 如何使用loadash對(duì)[object,object,object]形式的數(shù)組進(jìn)行比較10. javascript - 我是做web前端的,公司最近有一個(gè)項(xiàng)目關(guān)于數(shù)據(jù)統(tǒng)計(jì)的!
