java-websocket jsp端出现404

问题描述

websocket jsp端出现404

tomcat 8 jdk 1.7 eclipse中Build id: 20140925-1800
在java后台写的websocket前端jsp中始终出现404的错误,网上查了下有说差jar包的有说tomcat 7以上的,我这都满足了要求为什么还要报错呢?请各位帮我看看嘛

@ServerEndpoint(value = "/websocket/chat")

public class ChatAnnotation {

private static final Log log = LogFactory.getLog(ChatAnnotation.class);  

private static final String GUEST_PREFIX = "Guest";
private static final AtomicInteger connectionIds = new AtomicInteger(0);
private static final Map<String,Object> connections = new HashMap<String,Object>();  

private final String nickname;
private Session session;  

public ChatAnnotation() {
    nickname = GUEST_PREFIX + connectionIds.getAndIncrement();
}  

@OnOpen
public void start(Session session) {
    this.session = session;
    connections.put(nickname, this);
    String message = String.format("* %s %s", nickname, "has joined.");
    broadcast(message);
}  

@OnClose
public void end() {
    connections.remove(this);
    String message = String.format("* %s %s",
            nickname, "has disconnected.");
    broadcast(message);
}  

/**
 * 消息发送触发方法
 * @param message
 */
@OnMessage
public void incoming(String message) {
    // Never trust the client
    String filteredMessage = String.format("%s: %s",
            nickname, HTMLFilter.filter(message.toString()));
    broadcast(filteredMessage);
}  

@OnError
public void onError(Throwable t) throws Throwable {
    log.error("Chat Error: " + t.toString(), t);
}  

/**
 * 消息发送方法
 * @param msg
 */
private static void broadcast(String msg) {
    if(msg.indexOf("Guest0")!=-1){
        sendUser(msg);
    } else{
        sendAll(msg);
    }
}   

/**
 * 向所有用户发送
 * @param msg
 */
public static void sendAll(String msg){
    for (String key : connections.keySet()) {
        ChatAnnotation client = null ;
        try {
            client = (ChatAnnotation) connections.get(key);
            synchronized (client) {
                client.session.getBasicRemote().sendText(msg);
            }
        } catch (IOException e) {
            log.debug("Chat Error: Failed to send message to client", e);
            connections.remove(client);
            try {
                client.session.close();
            } catch (IOException e1) {
                // Ignore
            }
            String message = String.format("* %s %s",
                    client.nickname, "has been disconnected.");
            broadcast(message);
        }
    }
}  

/**
 * 向指定用户发送消息
 * @param msg
 */
public static void sendUser(String msg){
    ChatAnnotation c = (ChatAnnotation)connections.get("Guest0");
    try {
        c.session.getBasicRemote().sendText(msg);
    } catch (IOException e) {
        log.debug("Chat Error: Failed to send message to client", e);
        connections.remove(c);
        try {
            c.session.close();
        } catch (IOException e1) {
            // Ignore
        }
        String message = String.format("* %s %s",  c.nickname, "has been disconnected.");
        broadcast(message);
    }
}

}


<!DOCTYPE HTML>

  <script type="text/javascript">
     function WebSocketTest()
     {
        if ("WebSocket" in window)
        {
           alert("WebSocket is supported by your Browser!");

           // Let us open a web socket
           var ws = new WebSocket("ws://192.168.2.158:8080/WebRTC/websocket/chat");

           ws.onopen = function()
           {
              // Web Socket is connected, send data using send()
              ws.send("Message to send");
              alert("Message is sent...");
           };

           ws.onmessage = function (evt)
           {
              var received_msg = evt.data;
              alert("Message is received...");
           };

           ws.onclose = function()
           {
              // websocket is closed.
              alert("Connection is closed...");
           };
        }

        else
        {
           // The browser doesn't support WebSocket
           alert("WebSocket NOT supported by your Browser!");
        }
     }
  </script>
  <div id="sse">
     <a href="javascript:WebSocketTest()">Run WebSocket</a>
  </div>

时间: 2024-11-01 05:31:50

java-websocket jsp端出现404的相关文章

Java Servlet/Jsp多语言解决方案(一)

js|servlet|解决 Java Servlet/Jsp多语言解决方案 因为一直不信Java竟会有不能混排显示多国语言的BUG,这个周末研究了一下Servlet. Jsp的多国语言显示的问题,也就是Servlet的多字符集问题,由于我对字符集的概念还 不是很清晰所以写出的东西未必是准确的,我是这样理解Java中的字符集的:在运行时 ,每个字符串对象中存储的都是编码为UNICODE内码的(我觉得所有的语言中都是有相应 编码的,因为在计算机内部字符串总是用内码来表示的,只不过一般计算机语言中的字

手机-websocket移动端无效但是电脑端正常

问题描述 websocket移动端无效但是电脑端正常 用websocket做了个聊天功能,在电脑端可以正常使用.但在手机端却不能使用.就是在手机端登陆的时候获取不到用户的id. 解决方案 jQuery判断浏览器是移动端还是电脑端自动跳转 解决方案二: package com.jp100.wapbaike.service; import java.io.IOException; import java.nio.ByteBuffer; import java.nio.CharBuffer; impo

用java WebSocket做一个聊天室_java

最近一个项目中,需要用到Java的websocket新特性,于是就学了一下,感觉这技术还挺好玩的,瞬间知道网页上面的那些在线客服是怎么做的了. 先看图: 实现了多客户机进行实时通讯. 下面看代码项目结构图:很简单,就1个类,1个页面 然后看具体代码 先看后端代码 package com.main; import java.io.IOException; import java.util.concurrent.CopyOnWriteArraySet; import javax.websocket.

文件保存问题,jsp端生成的文件想保存到客户端

问题描述 文件保存问题,jsp端生成的文件想保存到客户端 我在用户端的jsp上生成了一个文件,我想把这个文件保存到服务器端,不用上传的方法能不能实现? 我在jsp上用的是 <% response.addHeader("Content-disposition", "inline; filename=myword.doc"); response.setContentType("application/msword,charset=gbk");

web启动摄像头-java实现web端启动摄像头录制视频并保存

问题描述 java实现web端启动摄像头录制视频并保存 java实现web端启动摄像头录制视频并保存,再网页端点击按钮开始录制点击完成停止录制,并将这段视频上传

java ocket 反向-java Socket服务端反向查数据

问题描述 java Socket服务端反向查数据 需求是 两个java web项目,用socket实现数据即时查询 client向server注册,并保持连接 server向client发送请求,client返回数据. 我现在不知道怎么用ServerSocket向Socket对象发送请求,并且能得到回复. 帮我考虑一下,多谢. 解决方案 http://bbs.51cto.com/thread-1084435-1.html 一个简单的Demo 解决方案二: 看一下例子就行了http://blog.

代码-java socketServer服务端可以把多个并成一个写

问题描述 java socketServer服务端可以把多个并成一个写 旧项目代码socketServer代码太多,东一个西一个,很不方便维护. 我打算,把所有socketServer整合到一个代码里来,集中管理. 以前30socketServer接口,要写30个类,太多,入口不统一. 我想把入口统一,先一个类,然后根据不同client的请求,分派到不同业务类 去处理业务. 不知道,可不可行. 因为Socket client = server.accept()还; 是阻塞的.所以一时半会 还想不

参数-关于java,jsp 和js的传参问题

问题描述 关于java,jsp 和js的传参问题 怎么做到从js 从传递参数到 里面的脚本语言里面 解决方案 服务器端代码无法直接获取客户端的内容,需要提交后才能使用 http://www.w3school.com.cn/jquery/ajax_ajax.asp

关于websocket服务端节点问题

问题描述 关于websocket服务端节点问题 写毕业论文时要用到websocket,现在遇到一个问题假如我有两个同级节点,如@serverendpoint("/chat/a")和serverendpoint("/chat/b"),它们能否互相发送消息,如果可以,那怎么才能做到同级节点不能互发消息