嵌入式Tomcat的WebSocket是404
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式Tomcat的WebSocket是404相关的知识,希望对你有一定的参考价值。
我做了两节课:
- 嵌入式Tomcat的主类(8.5.20)
- Websocket的ServerEndpoint
我在IntelliJ IDEA上运行主类并在Google Chrome的控制台中运行此javascript:new WebSocket('ws://localhost:8080/ws')
。
我预计响应代码是200,但实际上它是404。
我怎样才能解决这个问题?
主要课程:
package webapp;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.startup.Tomcat;
import javax.servlet.ServletException;
import java.io.File;
public class Main {
private static final String STATIC_DIR = "src/main/static/";
public static void main(String[] args) throws ServletException, LifecycleException {
Tomcat tomcat = new Tomcat();
tomcat.setPort(8080);
File staticDir = new File(STATIC_DIR);
tomcat.addWebapp("/", staticDir.getAbsolutePath());
tomcat.start();
tomcat.getServer().await();
}
}
ServerEndpoint:
package webapp.websocket;
import javax.websocket.OnClose;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint("/ws")
public class SampleWebSocket {
@OnOpen
public void onOpen(Session session) {
System.out.println("open");
}
@OnClose
public void onClose(Session session) {
System.out.println("close");
}
@OnMessage
public String onMessage(String text) {
System.out.println("message:" + text);
return "Server:" + text;
}
}
谢谢。
以上是关于嵌入式Tomcat的WebSocket是404的主要内容,如果未能解决你的问题,请参考以下文章
Apache Tomcat 在使用 websocket 时返回 404
嵌入式tomcat 8.0.21中的Spring websocket
如何在 spring-boot 中拦截嵌入式 Tomcat 上的“全局”404