struts2+websocket报错:failed: Error during WebSocket handshake: Unexpected response code:404

最近把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。

原文地址:https://www.cnblogs.com/linl/p/4047246.html