【发布时间】:2021-12-17 23:47:42
【问题描述】:
我按照教程进行了操作,但该项目不起作用。 当我在 tomcat 中部署战争并访问地址 http://localhost:8080/queroquero/rest/vendedor/get 我有 404 状态,但是如果我访问 http://localhost:8080/queroquero/ 我得到一个“你好世界”。
@ApplicationPath("rest")
public class Main extends Application{ }
---------------------------------------------
@Path("vendedor")
public class VendedorResource {
@GET
@Path("get")
@Produces(MediaType.APPLICATION_JSON)
public Response get() {
String texto = new String("It's working!!!");
return Response.ok(texto).build();
}
}
我的 POM.xml 依赖项:
<dependencies>
<dependency>
<groupId>jakarta.platform</groupId>
<artifactId>jakarta.jakartaee-api</artifactId>
<version>8.0.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>2.3.3</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.7</version>
</dependency>
</dependencies>
我的 web.xml:
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!-- Auto scan REST service -->
</web-app>
我已经花了好几个小时了,却找不到错误或遗漏的地方。
【问题讨论】:
-
如果您使用的是 Tomcat 9 而不是 Tomcat 10,您需要将上述答案中的每个工件降级为一个主要版本(例如,使用 2.35 用于 Jersey)。 Tomcat 支持的 API 列表可以在 this answer 中找到。
-
你使用的是什么 Tomcat 版本?
-
@MarkRotteveel 我正在使用 Tomcat 10
-
@MoabRodrigues 如果您使用的是 Tomcat 10,那么您需要加载 Jakarta EE 9.x 库(
jakarta.*包),目前您正在加载 Jakarta EE 8.x 或更低版本的库(@987654327 @包)。或者,您需要降级到 Tomcat 9。