Java 嵌入Tomcat的WebSocket是404
我上了两门课:Java 嵌入Tomcat的WebSocket是404,java,tomcat,websocket,Java,Tomcat,Websocket,我上了两门课: 带有嵌入式Tomcat的主类(8.5.20) Websocket的服务端点 我在IntelliJ IDEA上主修课程 并运行以下JavaScript:newWebSocket('ws://localhost:8080/ws') 在谷歌浏览器的控制台上 我期望响应代码是200,但实际上是404 我怎样才能解决这个问题 主要类别: package webapp; import org.apache.catalina.LifecycleException; import org.a
newWebSocket('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();
}
}
服务器端点:
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;
}
}
谢谢。我找到了解决办法。
这个问题是重复的
我阅读并编辑了pom.xml
下面是我的pom.xml的全部内容
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>websocket-sample</artifactId>
<version>1.0.0-SNAPSHOT</version>
<name>websocket-sample</name>
<properties>
<java.version>1.8</java.version>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven.compiler.source>${java.version}</maven.compiler.source>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-core</artifactId>
<version>8.5.20</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-websocket</artifactId>
<version>8.5.20</version>
</dependency>
<dependency>
<groupId>javax.websocket</groupId>
<artifactId>javax.websocket-api</artifactId>
<version>1.1</version>
</dependency>
</dependencies>
</project>
4.0.0
com.example
网袋样品
1.0.0-SNAPSHOT
网袋样品
1.8
${java.version}
${java.version}
UTF-8
org.apache.tomcat.embed
tomcat嵌入式内核
8.5.20
org.apache.tomcat
TomcatWebSocket
8.5.20
javax.websocket
javax.websocket-api
1.1
只需将以下依赖项添加到pom.xml
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-websocket</artifactId>
<version>8.5.20</version>
</dependency>
org.apache.tomcat
TomcatWebSocket
8.5.20