香烟love彬 2016-04-13 02:36
浏览 1386
已结题

websocket jsp端出现404

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

这是后台的java代码

@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);    
    }   
}  

}

这是html中的调用后台的ws
<!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>


这是tomcat8中server.xml配置访问的项目路径

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 vs2019中数据导出问题
    • ¥20 云服务Linux系统TCP-MSS值修改?
    • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
    • ¥20 怎么在stm32门禁成品上增加查询记录功能
    • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
    • ¥50 NT4.0系统 STOP:0X0000007B
    • ¥15 想问一下stata17中这段代码哪里有问题呀
    • ¥15 flink cdc无法实时同步mysql数据
    • ¥100 有人会搭建GPT-J-6B框架吗?有偿
    • ¥15 求差集那个函数有问题,有无佬可以解决