运行 jersey 2 网络服务缺少什么?

what is that I'm missing to run jersey 2 web service?

我创建了一个动态的 java 项目并添加了这个依赖项:

<!-- https://mvnrepository.com/artifact/org.glassfish.jersey.containers/jersey-container-servlet-core -->
        <dependency>
            <groupId>org.glassfish.jersey.containers</groupId>
            <artifactId>jersey-container-servlet-core</artifactId>
            <version>2.23.1</version>
        </dependency>

然后我创建了这样的应用程序 class:

@ApplicationPath("/test")
public class App extends ResourceConfig {
    public App() {
        this.packages("com.test.ul");
    }
}

并且在应用 class 所在的同一个包中,我创建了这个:

@Path("restaurantAPI")
public class RestaurantAPI {

    @Path("/get")
    @GET
    public Response getRequest(@PathParam("id") String id) {
        return Response.ok(id).build();
    }

}

我 运行 我的服务器,我称之为 URL:

http://localhost:8080/ULTestServer/test/restaurantAPI/get?id=3

但我收到错误 404

请问我错过了什么? (我总是这样做并且它曾经有效)

改变

jersey-container-servlet-core

jersey-container-servlet

原因是后者有 required component1 允许在没有 web.xml 的情况下发现您的应用程序,以代替 @ApplicationPath .这是 servlet 3 可插拔机制的一部分。

第一个依赖项用于非 servlet 3.0 容器,其中使用 必须 使用 web.xml 注册 Jersey servlet。


1 - Here is the implementation