java - 如何根据后缀有条件地路由 JAX-RS 请求?

标签 java jersey jax-rs

这就是我正在尝试做的事情:

@Path("/finder")
public class Finder {
  @Path("/{name}")
  public Proxy find(@PathParam("name") String name) {
    Object found = /* some object found by name */
    return new Proxy(found);
  }
}
public class Proxy {
  private Object obj;
  public Proxy(Object found) {
    this.obj = found;
  }
  @GET
  @Path("/")
  public String info() {
    return /* some meta-information about the object */
  }
  @Path("/")
  public Object passthru() {
    return this.obj;
  }
}

我正在尝试启用:

GET /finder/alpha -> Proxy.info()
GET /finder/alpha/something -> obj.something()

我走的路对吗?与此同时, Jersey 说:

WARNING: A sub-resource method, public final java.lang.String com.XXX.Proxy.info(), 
with URI template, "/", is treated as a resource method

最佳答案

上面的代码一切都很好,除了我不需要 info() 处的 @Path("/") 注释。

关于java - 如何根据后缀有条件地路由 JAX-RS 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4276882/

相关文章:

java - 使用 Keycloak Java 管理 api 时对 RestEasy 的依赖性最小

java - 以编程方式调用 actionListener

java - 如何从 Apache CXF REST 服务返回 XML 并将其转换为 json?

java - 将 Java 字符串数组组合成一个对象

java - 我可以使用@Context注释注入(inject)哪些对象?

java - Json Jersey 反序列化 : Abstract Class

Java 客户端 SSL 重新协商

java - Dropwizard 支持多种序列化格式

java - 在 spring messages.properties 中,使用错误代码作为键时如何确保错误消息换行?

java - 从字节数组中获取文件名