0
我提出两类:的WebSocket具有嵌入Tomcat是404
- 与网页套接字的嵌入的Tomcat(20年5月8日)
- ServerEndpoint Main类
我上IntelliJ IDEA的运行的主类 并在谷歌浏览器的控制台中运行此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;
}
}
谢谢。