WildFly 中 JAX-RS 的最低依赖项是什么?

Which minimum dependencies for JAX-RS in WildFly?

我们是 运行 一个在 WildFly 20 服务器中部署为多个 WAR 的项目。由于“历史原因”,项目设置很糟糕,即有几个 pom.xml 文件到处都是依赖项。

现在我要构建一个新的 WAR 模块,它将提供基于 JAX-RS 的 REST API。因为我可以从头开始,所以我想通过使用 WildFly 20 已经提供的库来使 pom.xml 尽可能简单。

这是一个示例控制器:

SampleController.java

import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.core.Response;

public class SampleController {

    @GET
    public Response ping() {
        return Response.ok().entity("pong").build();
    }
}

似乎以下方法有效:

<dependencies>
    <dependency>
        <groupId>javax.ws.rs</groupId>
        <artifactId>javax.ws.rs-api</artifactId>
        <version>2.0.1</version>
    </dependency>
</dependencies>

但这也有效...

<dependencies>
    <dependency>
        <groupId>jakarta.platform</groupId>
        <artifactId>jakarta.jakartaee-api</artifactId>
        <version>${jakartaee.version}</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

然后我正在阅读有关包括 wildfly-jaxrs 和其他工件的内容...

那么,为了使用 JAX-RS 实现 REST 服务,我真正需要哪些依赖项?

由于您使用的是 Jakarta EE 兼容服务器 WildFly,因此 API 是您需要的全部依赖项。依赖项也应标记为 <scope>provided</scope>.

鉴于这是一个新应用程序,我倾向于使用 Jakarta EE 依赖项。