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

方法一 :
網(wǎng)上參考大量的文檔,有說跟前端請求域名有關系的。 反正對我來說,沒啥用無法連接。
需使用 localhost,不能使用127.0.01
var host = window.location.host;
var url = "ws://"+host+"/chatRoom/null";方法二 :可以解決
添加監(jiān)聽配置 ,采用spring boot自動裝配的方式,創(chuàng)建一個Session。
因為我需要存入數(shù)據(jù),所以對我而言,不太ok。
其他原因看:WebSocket獲取httpSession空指針異常的解決辦法
http://chabaoo.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通過監(jiān)聽創(chuàng)建Session。監(jiān)聽最牛逼的不應該是攔截器或者過濾器。
可以從攔截器中獲取到我需要的數(shù)據(jù),在request里面配置,應該更好。從request中getSession,存點東西進去試試。
@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);
// 封裝請求信息存儲到請求上下文
chain.doFilter(request, response);
long end = System.currentTimeMillis();
System.out.println("請求耗時:" + (end - start) + "ms");
}
}
到此這篇關于空指針:HttpSession異常,SpringBoot集成WebSocket的文章就介紹到這了,更多相關SpringBoot集成WebSocket內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
解決springboot沒有啟動標識,啟動類也沒有啟動標識的問題
這篇文章主要介紹了解決springboot沒有啟動標識,啟動類也沒有啟動標識的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01
Springboot整合logback多節(jié)點日志文件加端口號區(qū)分的操作方法
這篇文章主要介紹了Springboot整合logback多節(jié)點日志文件加端口號區(qū)分的操作方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-09-09
Springboot 使用maven release插件執(zhí)行版本管理及打包操作
maven-release-plugin 可用于構建release版本項目,實現(xiàn)自動打tag、遞增版本號、分發(fā)release版本jar包至倉庫,接下來通過本文給大家介紹Springboot 使用maven release插件執(zhí)行版本管理及打包操作,需要的朋友可以參考下2022-03-03
淺析SpringBoot中使用thymeleaf找不到.HTML文件的原因
這篇文章主要介紹了SpringBoot中使用thymeleaf找不到.HTML文件的原因分析,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07

