Servlets 如何在Jetty中指定WebSocketServlet的URL?
我已经阅读并希望在Jetty上使用Servlets 如何在Jetty中指定WebSocketServlet的URL?,servlets,annotations,jetty,websocket,Servlets,Annotations,Jetty,Websocket,我已经阅读并希望在Jetty上使用WebSocketServlet创建一个简单的echo websocket 我创建了我的WebSocketServlet,如下所示: public class ChatSocketServlet extends WebSocketServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) t
WebSocketServlet
创建一个简单的echo websocket
我创建了我的WebSocketServlet
,如下所示:
public class ChatSocketServlet extends WebSocketServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
out.println("<!DOCTYPE html><html><body><h1>Chat</h1></body></html>");
}
@Override
public WebSocket doWebSocketConnect(HttpServletRequest request, String protocol) {
return new ChatWebSocket();
}
class ChatWebSocket implements OnTextMessage {
private Connection connection;
@Override
public void onClose(int closeCode, String message) {
System.out.println("onClose");
}
@Override
public void onOpen(Connection connection) {
this.connection = connection;
}
@Override
public void onMessage(String data) {
try {
connection.sendMessage(data);
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
但它返回
未找到
。是否有任何其他注释来指定WebSocketServlet
的URL?我也不知道从这个servlet上的doGet
获取输出的URL。你的web.xml文件中的URL映射是什么?@nico_ekito:我没有web.xml
我只使用注释@WebServlet(“/HelloServlet”)
,但它似乎不适用于此。由于Websocket不是JEE规范的一部分,我将尝试使用一个web.xml文件:)@Jonas你成功地使它工作了吗?我也有同样的问题。即使我可以从我的websocket客户端获得http 200,但它仍然会强制关闭连接。
ws://localhost:8080/MyJavaWeb/ChatWebSocket