页面访问java websocket服务时,出现异常,Firefox下的异常是:Firefox 无法建立到 ws://... 服务器的连接;

IE下的异常是:WebSocket Error: Incorrect HTTP response. Status code 404, Not Found

环境是:apache-tomcat-7.0.62、jdk1.7.0_67、@ServerEndpoint("/websocket")这种声明式写法

我的排查步骤:

1、tomcat的JAVA_HOME指向jdk7

2、Firefox参数调整,据说默认是关闭websocket的,但是我的版本是38.0.6,没有关闭

3、web.xml头部改为<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">

4、最后发现,是由于我引入了一个javax.websocket-api.jar放到了WEB-INF/lib/下面,可能跟tomcat7的websocket-api.jar有冲突。

去掉javax.websocket-api.jar后异常消失

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Testing websocket</title>
</head>
<body><div><input type="submit" value="Start" οnclick="start()" /><input type="button" value="Stop" οnclick="stop()" /></div><div id="messages"></div><script type="text/javascript">console.log(window.WebSocket);var webSocket = new WebSocket('ws://127.0.0.1:8088/WebModule/websocket');webSocket.onerror = function(event) {onError(event)};webSocket.onopen = function(event) {onOpen(event)};/* webSocket.onclose = function(event){alert("要离开了?");}; */webSocket.onmessage = function(event) {onMessage(event)};function onMessage(event) {document.getElementById('messages').innerHTML += '<br />'+ event.data;}function onOpen(event) {document.getElementById('messages').innerHTML = 'Connection established';}function onError(event) {alert(event.data);}function start() {webSocket.send('hello');return false;}function stop() {webSocket.send('bye bye!');webSocket.close();}</script>
</body>
</html>

import java.io.IOException;import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;@ServerEndpoint("/websocket")
public class WebSocketTest {@OnMessagepublic void onMessage(String message, Session session) throws IOException, InterruptedException{// Print the client message for testing purposesSystem.out.println("Received: " + message);// Send the first message to the clientsession.getBasicRemote().sendText("This is the first server message");// Send 3 messages to the client every 5 secondsint sentMessages = 0;while(sentMessages < 3){Thread.sleep(5000);session.getBasicRemote().sendText("This is an intermediate server message. Count: " + sentMessages);sentMessages++;}// Send a final message to the clientsession.getBasicRemote().sendText("This is the last server message");}@OnOpen public void onOpen(){System.out.println("Client connected");}@OnClosepublic void onClose(){System.out.println("Connection closed");}}

websocket——Firefox 无法建立到 ws://... 服务器的连接相关推荐

  1. 建立与ftp服务器的连接——完成版(java)

    建立与ftp服务器的连接--完成版(java) // ftp 程序Ftp.java // 此程序的功能是建立与ftp服务器的连接并实现文件传输 // 使用方法:java Ftp 服务器地址 //启动示 ...

  2. java与ftp连接_建立与ftp服务器的连接——完成版(java)

    // ftp 程序Ftp.java // 此程序的功能是建立与ftp服务器的连接并实现文件传输 // 使用方法:java Ftp 服务器地址 //启动示例:java Ftp kiku.fuis.fuk ...

  3. m未能建立与ppp服务器的连接6,未能建立与ppp服务器

    未能建立与ppp服务器 内容精选 换一换 ELB的常见异常返回码有400.403.502.504等.若遇到这些返回码建议您先直接访问后端云服务器,查看是否是后端云服务器的异常.若后端云服务器响应正常, ...

  4. 解决报错:无法建立到笔记本服务器的连接。我们会继续尝试重连。请检查网络连接还有服务配置

    在配置notebook的pytorch环境时,切换python虚拟环境后连接不到内核,在这篇文章中得以解决: zJupyter Notebook更改kernel时出现服务连接问题:到后台服务的连接没能 ...

  5. Websocket协议原理及Ws服务器代码实现

    一.什么是 WebSocket WebSocket 是 HTML5 开始提供的一种,建立在单个 TCP 连接上的全双工的网络通信协议.WebSocket 协议在2008年诞生,2011年成为国际标准. ...

  6. Spring和WebSocket整合并建立简单的Web聊天室

    Spring和WebSocket整合并建立简单的Web聊天室 官方主页 Spring WebSocket 一.概述 WebSocket 是一种网络通信协议.RFC6455 定义了它的通信标准. Web ...

  7. http服务器发送消息,node.js+electron教程(二): http服务器, ws服务器, 进程管理

    引言 这次, 我们一起通过几个例子, 进一步了解node.js+electron. 三个例子: 搭建一个http服务器, 通过web对服务器进行访问 搭建一个ws服务器, 通过web向服务器发送消息 ...

  8. 未能分析从服务器收到的消息,WebSocket Javascript客户端未收到来自服务器的消息...

    我已经在本地GlassFish 4.1服务器上部署了Java Web应用程序,该服务器实现了与Web客户端互操作的WebSockets.我能够通过套接字成功执行客户端到服务器的通信,但由于某种原因,服 ...

  9. Websocket(二)-客户端与服务器通信

    Websocket(二)-客户端与服务器通信 服务端 客户端测试 const WebSocket = require('ws'); const Server = WebSocket.Server; c ...

最新文章

  1. 国内首档程序员真人秀?这不比博人传热血?!
  2. 一篇深入剖析PCA的好文
  3. 数据库里any 和 all 的区别
  4. 图片批量重命名编号_碾压市面上90%“批量改名、批量重命名软件”
  5. fork、vfork、wait、waitpid
  6. 粉丝大失所望,罗永浩回应:做主播赚的不是脏钱
  7. java自定义annotation_Java自定义annotation | 学步园
  8. 职中c语言课程,C语言课件下载【深圳职业技术学院】
  9. 海康ehome协议分析(3):PTZ云台控制
  10. OpenCV:图像检索
  11. aspupload中文文件名乱码解决
  12. 从迁移学习到图像合成
  13. Linguist for Mac(mac菜单栏语言翻译工具)
  14. MongoDB文档增删改查
  15. Lecture05:随机市场出清
  16. HTML打开Excel文件
  17. 引入第三方sdk错误提示
  18. VS2015远程调试
  19. 计算机网络传输层简介
  20. Outlook-VBA-04-收件箱自动处理

热门文章

  1. 阿里云云服务器使用须知(全套详解)
  2. huffman编码压缩c语言,用Huffman编码对文件进行压缩的C语言实现
  3. 微信商城开源版二次开发(二)
  4. matlab与化学,MATLAB与化学
  5. 人工智能的发展历史_是产品,而非艺术品——也论人工智能与文学艺术
  6. EMPS:个人做数据分析处理的4重境界
  7. 关注博主的博文汇总(孙志刚、贺利坚……)
  8. 以太坊合约语言开发简单介绍
  9. IT行业的发展走向趋势
  10. Word中10以内的都是带圆圈的数字到了11就没有圆圈