前幾天完成了聊天功能之后,想把這個功能模塊整合進Struts2框架里,卻發現WebSocket無法建立連接。弄了兩天才發現原因。
我的項目里主要是兩個原因:
一、
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
這里Struts2攔截了所有請求,修改方法是:在Struts.xml里添加<constant name="struts.action.excludePattern" value="/websocket"></constant>
這樣就把WebSocket請求的攔截排除。
原因二:jar包不匹配,聊天功能里我用到的commons-lang-2.5.jar,而Struts2里用到的是commons-lang-3.3.2.jar,整合的時候我把舊版本的lang包刪了,再加回去后能夠正常聊天。