猿问

java-server websocket失败:WebSocket握手期间出错:

我正在学习使用tomcat在Java中创建Web套接字服务器,


但是当我使用示例代码运行tomcat9.0时,


我总是在chrome开发人员工具响应中收到以下错误。


 **web socket failed: Error during WebSocket handshake: Unexpected response code: 404**

我查询了很多参考资料,但仍然无法解决问题,


我使用的是tomcat9.0&jre 1.8.0,请参阅Blog。


我创建服务器代码(项目->新建-> Servlet文件)是


 package idv.yu;


 import java.io.IOException;

 import javax.websocket.OnClose;

 import javax.websocket.OnError;

 import javax.websocket.OnMessage;

 import javax.websocket.OnOpen;

 import javax.websocket.Session;

 import javax.websocket.server.ServerEndpoint;


 @ServerEndpoint(value = "/endpoint")

 public class MyWebsocket {


    @OnOpen

    public void onOpen(Session session) {

        System.out.println("onOpen::" + session.getId());

    }


    @OnClose

    public void onClose(Session session) {

        System.out.println("onClose::" + session.getId());

    }


    @OnMessage

    public void onMessage(String message, Session session) {

        System.out.println("onMessage::From=" + session.getId() + "      Message=" + message);


        try {

            session.getBasicRemote().sendText("Hello Client " +      session.getId() + "!");

        } catch (IOException e) {

            e.printStackTrace();

        }

    }


    @OnError

    public void onError(Throwable t) {

        System.out.println("onError::" + t.getMessage());

    }

 }

我的项目树结构如下:

侃侃尔雅
浏览 419回答 2
2回答

梵蒂冈之花

404websocket中的内容与404HTTP中的内容没有什么不同,这意味着您尝试访问的地址无法在服务器上找到。在您的情况下,我认为这大约是/WebsocketDemo一部分。该/endpoint是你的端点配置,但其缺少可用/WebsocketDemo。也许您应该将WAR部署/WebsocketDemo在webapps中,或者删除地址的这一部分。
随时随地看视频慕课网APP

相关分类

Java
我要回答