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

标签 java jersey jax-rs

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

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

@Path("/foo")
public class PostHandler {
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public Response handlePost() { ...
}

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

com.sun.jersey.api.container.ContainerException: A root resource, class PostHandler, has a non-unique URI template /foo

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

最佳答案

JAX-RS 规范并不禁止这样的映射。例如,Resteasy JAX-RS 实现允许它。该功能应特定于 Jersey 。

关于:

I can always create one class to handle requests and then delegate to helper classes. I was hoping there was a standard way of doing so.

通常你有与路径同名的资源类:

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

    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    public Response handlePost() {
       ...
    }
}

关于java - 具有相同路径的 JAX-RS 多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12097292/

相关文章:

java - 新手 Q : layout_below not placing my button below my textView

java - 错误: No resource found that matches the given name (at 'src' with value '@drawable/black_title' )

java - 如何在 java 代码中使用 javafx 更改 ScatterChart 的点颜色?

java - 如何在不使用tomcat的情况下运行jersey-server webservice服务器

jax-rs - 如何在 Restful Jax-rs 中发送图像

java - 类型 Response.Response 构建器不可见

java - Wildfly 中 REST 响应的 GZip 压缩

java - MsgPack第三方对象序列化

java - 如何告诉 Jersey Jackson 不要序列化一项资源?

gradle - Springfox swagger - 没有带有 spring boot jersey 和 gradle 的 api-docs