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

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条回答

    报告相同问题?

    悬赏问题

    • ¥20 sub地址DHCP问题
    • ¥15 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办
    • ¥15 kylin启动报错log4j类冲突
    • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大