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。

时间: 2024-10-27 07:46:49

struts2+websocket报错:failed: Error during WebSocket handshake: Unexpected response code:404的相关文章

nginx反向代理 报错:Error during WebSocket handshake: Unexpected response code: 403

遇到nginx报错:websocket wss failed: Error during WebSocket handshake: Unexpected response code: 403 server { listen 6340; location / { proxy_pass http://web; proxy_http_version 1.1; #Nginx在与Node后端通信时使用HTTP/1.1,是WebSockets所必需的 proxy_set_header Origin '';

vue-cli 安装失败Failed to download repo vuejs-templates/webapck-simple: Response code 404 (Not Found)

新学习vue的萌新们经常会遇到各种各样的坑.例如上面这个报错.这个一般是命令行面板写错单词导致. 正确:vue init webpack-simple .(注意"."点,指当前目录) 正确2:veu init webapck project(project自己取得名字): 在安装之前,请确保在命令行输入vue -V(大写V) node -v(小写v)能输出版本号 并且命令行输入"ping github.com"能连接得上.连接不上也无所谓,百度淘宝镜像,按照要求装个

websocket failed: Error during WebSocket handshake: Unexpected response code: 200

websocket+spring整合,不能访问, 解读源码: 原因:websocket_username=null,导致空异常 解决:给websocket session 添加用户名 //握手前,读取用户名,并赋值给websocket的session @Override public boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler handler, M

struts2启动报错:ERROR com.opensymphony.xwork2.conversion.impl.DefaultConversionPropertiesProcessor - Conversion registration error

[framework] 2019-12-05 11:34:05,441 - org.springframework.web.context.ContextLoader -5352 [RMI TCP Connection(3)-127.0.0.1]INFO org.springframework.web.context.ContextLoader - Root WebApplicationContext: initialization completed in 5349 ms timer appl

Socket.IO failed: Error during WebSocket handshake:

在node安装了Socket.IO,做demo时报错 WebSocket connection to 'ws://localhost:8999/socket.io/?EIO=3&transport=websocket&sid=D0fxLuPwjHWgYSI7AAAB' failed: Error during WebSocket handshake: Unexpected response code: 400 WebSocket 握手时发生错误,诡异的是我前端页面没有关闭,重启服务器nod

keil 通过JTAG下载程序 报错:error: flash download failed - &quot;cortex-m3&quot;的解决方法

硬件环境: nxp lpc1788fbd208核心板 软件环境: keil uvision4 segger j-flash arm v4.50 其他: 芯片选择正确 jtag模式 现象:之前用JFlashARM.exe下载了程序,在没有擦除程序的情况下,JTAG模式下用keil下载程序 报错 error: flash download failed - "cortex-m3" 原因:用jFlashARM.exe下载程序后,没有擦除程序 解决:擦除lpc1788 上的程序,然后在keil

解决;R语言使用sqldf库是报错&quot;Failed to connect to database: Error: Access denied for user &#39;..&#39;@&#39;localhost&#39; (using password: NO) Error in !dbPreExists : invalid argument type&quot;

原因:在使用sqldf时,不需要加载RMySQL库 解决方案:在控制台执行释放RMySQL库加载 detach("package:RMySQL", unload=T); 解决;R语言使用sqldf库是报错"Failed to connect to database: Error: Access denied for user '..'@'localhost' (using password: NO) Error in !dbPreExists : invalid argume

Kafka日志报错:[error] k.m.j.KafkaJMX$ - Failed to connect to service:jmx:rmi:///jndi/rmi://10.1.3.116:-1/jmxrmi java.lang.IllegalArgumentException: requirement failed: No jmx port but jmx polling enabled!

一.Kafka日志报错:[error] k.m.j.KafkaJMX$ - Failed to connect to service:jmx:rmi:///jndi/rmi://10.1.3.116:-1/jmxrmi java.lang.IllegalArgumentException: requirement failed: No jmx port but jmx polling enabled! 以上报错,并没有对Kafka对使用造成直接影响: 1>.启动生产者:kafka-console

Eclipse 报错:Error: Program &quot;sh&quot; not found in PATH

SDK和ADT为22.6.2版本 工程为4.4.2 在编译一个Launcher时,报错如下: sh ndk-build clean Cannot run program "sh": Launching failed Error: Program "sh" not found in PATH PATH=...... 在网上看了一下,一直以为是什么GCC的问题,多次尝试后无果,后来查阅了一些资料后,说是和NDK有关系,马上配置一下,问题解决了,非常感谢同事的帮忙! Wi