空指針HttpSession異常之SpringBoot集成WebSocket的方法
異??赡苄裕?/h2>
- 404 : 請(qǐng)檢查攔截器是否將請(qǐng)求攔截
- WebSocket握手期間HttpSession為空
HttpSession為空

方法一 :
網(wǎng)上參考大量的文檔,有說(shuō)跟前端請(qǐng)求域名有關(guān)系的。 反正對(duì)我來(lái)說(shuō),沒(méi)啥用無(wú)法連接。
需使用 localhost,不能使用127.0.01
var host = window.location.host;
var url = "ws://"+host+"/chatRoom/null";方法二 :可以解決
添加監(jiān)聽(tīng)配置 ,采用spring boot自動(dòng)裝配的方式,創(chuàng)建一個(gè)Session。
因?yàn)槲倚枰嫒霐?shù)據(jù),所以對(duì)我而言,不太ok。
其他原因看:WebSocket獲取httpSession空指針異常的解決辦法
http://www.dbjr.com.cn/program/334258vi3.htm
@WebListener
public class RequestListener implements ServletRequestListener {
@Override
public void requestDestroyed(ServletRequestEvent servletRequestEvent) {
}
@Override
public void requestInitialized(ServletRequestEvent servletRequestEvent) {
((HttpServletRequest)servletRequestEvent.getServletRequest()).getSession();
}
}雖然有Session了,還是連接不上!

方法三 :成功解決
靈感 : 方法2通過(guò)監(jiān)聽(tīng)創(chuàng)建Session。監(jiān)聽(tīng)最牛逼的不應(yīng)該是攔截器或者過(guò)濾器。
可以從攔截器中獲取到我需要的數(shù)據(jù),在request里面配置,應(yīng)該更好。從request中g(shù)etSession,存點(diǎn)東西進(jìn)去試試。
@WebFilter(urlPatterns = "/*")
public class ArticleFilter implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException{
long start = System.currentTimeMillis();
// 存入session
System.out.println("存入session");
((HttpServletRequest) request).getSession().setAttribute("name", 123);
// 封裝請(qǐng)求信息存儲(chǔ)到請(qǐng)求上下文
chain.doFilter(request, response);
long end = System.currentTimeMillis();
System.out.println("請(qǐng)求耗時(shí):" + (end - start) + "ms");
}
}
到此這篇關(guān)于空指針:HttpSession異常,SpringBoot集成WebSocket的文章就介紹到這了,更多相關(guān)SpringBoot集成WebSocket內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringCloud整合Consul的實(shí)現(xiàn)
這篇文章主要介紹了SpringCloud整合Consul的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
解決springboot沒(méi)有啟動(dòng)標(biāo)識(shí),啟動(dòng)類也沒(méi)有啟動(dòng)標(biāo)識(shí)的問(wèn)題
這篇文章主要介紹了解決springboot沒(méi)有啟動(dòng)標(biāo)識(shí),啟動(dòng)類也沒(méi)有啟動(dòng)標(biāo)識(shí)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
Springboot整合logback多節(jié)點(diǎn)日志文件加端口號(hào)區(qū)分的操作方法
這篇文章主要介紹了Springboot整合logback多節(jié)點(diǎn)日志文件加端口號(hào)區(qū)分的操作方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-09-09
Springboot 使用maven release插件執(zhí)行版本管理及打包操作
maven-release-plugin 可用于構(gòu)建release版本項(xiàng)目,實(shí)現(xiàn)自動(dòng)打tag、遞增版本號(hào)、分發(fā)release版本jar包至倉(cāng)庫(kù),接下來(lái)通過(guò)本文給大家介紹Springboot 使用maven release插件執(zhí)行版本管理及打包操作,需要的朋友可以參考下2022-03-03
淺析SpringBoot中使用thymeleaf找不到.HTML文件的原因
這篇文章主要介紹了SpringBoot中使用thymeleaf找不到.HTML文件的原因分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07

