JAX-RS具有相同路径的多个类

Ste*_*Kuo 10 java jax-rs jersey

使用JAX-RS,是否可以将多个类分配给单个路径?我正在尝试做这样的事情:

@Path("/foo")
public class GetHandler {
    @GET
    public Response handleGet() { ...
}

@Path("/foo")
public class PostHandler {
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public Response handlePost() { ...
}
Run Code Online (Sandbox Code Playgroud)

这显然是不允许的,因为我得到:

com.sun.jersey.api.container.ContainerException: A root resource, class PostHandler, has a non-unique URI template /foo
Run Code Online (Sandbox Code Playgroud)

我总是可以创建一个类来处理请求,然后委托给辅助类.我希望有一种标准的方法.

dce*_*chi 3

JAX-RS 规范并不禁止此类映射。例如,Resteasy JAX-RS 实现就允许这样做。该功能应该是球衣特定的。

关于:

我总是可以创建一个类来处理请求,然后委托给辅助类。我希望有一个标准的方法可以做到这一点。

通常,您拥有与路径同名的资源类:

@Path("/foo")
public class FooResource {
    @GET
    @Path("/{someFooId}")
    public Response handleGet() {
      ...
    }

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public Response handlePost() {
       ...
    }
}
Run Code Online (Sandbox Code Playgroud)