WebSocket连接到' ws:// *'失败:WebSocket握手期间出错:意外的响应代码:404

时间:2016-02-16 15:23:49

标签: java tomcat websocket tomcat8 java-websocket

您可以在下面找到所有代码, 启动了tomcat服务器,它完美无缺。 但在制作websocket请求时,我收到404错误。 这是chrome控制台中的错误:

  

WebSocket连接到' ws:// localhost:8088 / websocket-example / websocket'失败:WebSocket握手期间出错:意外的响应代码:404

并且没有服务器日志。

Java WebSocket代码:WebSocketTest.java

<!DOCTYPE html>
<html>
<head>
<title>HTML Frames</title>
</head>
<frameset cols="100%">
   <frame name="left" src="navigation-bars.html" />
   <noframes>
   <body>
      Your browser does not support frames.
   </body>
   </noframes>
</frameset>
</html>

JS代码:hello.html

package com.websockets;

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 {

@OnMessage
public void onMessage(String message, Session session) throws IOException,
        InterruptedException {
    System.out.println("Message: " + message);
    session.getBasicRemote().sendText("Hello Mr. " + message);
}

@OnOpen
public void onOpen() {
    System.out.println("Client connected");
}

@OnClose
public void onClose() {
    System.out.println("Connection closed");
}
}

的web.xml

var webSocket = new WebSocket('ws://localhost:8088/websocket-example/websocket');

tomcat / webapps下的文件夹结构..

<?xml version="1.0" encoding="ISO-8859-1"?>

<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">

<welcome-file-list>
  <welcome-file>hello.html</welcome-file>
</welcome-file-list>

</web-app>

更多信息:

  

java版本&#34; 1.7.0_75&#34;

     

Apache的Tomcat的8.0.32

     

服务器运行端口:8088

我不确定这些信息是否足够,让我知道需要调试的其他任何细节吗?

1 个答案:

答案 0 :(得分:0)

从$ JAVA_HOME / lib中删除不需要的jar。 然后添加了javax.websocket-api-1.0-rc4.jar然后它工作正常。