最近把websocket集成進項目里面來,打開網頁總是會遇到這樣的錯誤。
網上說的原因有3種,但是都不適合我,但是也記錄下。
1.struts2截攔掉了ws的請求。這種援用可以嘗試把web.xml清空,如果可以連接,則是這個問題。此時在struts.xml的配置文件中添加:
<constant name="struts.action.excludePattern" value="ws://*"></constant>
對ws的請求不截攔。
2.jar包的沖突,項目里的jar包跟tomcat中的jar包沖突。
3.把java project 轉化為 web project,調整包加載順序。
然后就是自己的解決方法,ws請求的url規則是這樣的:地址+端口+endpoint路徑。如果在java文件中定義了端點:
@ServerEndpoint(value="/echoendpoint")
並且在本地8080端口運行,則url為 http://127.0.0.1:8080/echoendpoint
java7的websocket只需要配置endpoint,頁面的JS就可以連接上,無需servlet或其他配置,只需注意下url。