RESTeasy如何解决@Path冲突

时间:2010-11-06 09:08:24

标签: java resteasy

考虑上面的代码

@Path("a")
@Produces("text/plain")
public class A {

    @GET
    @Path("a")
    public String getA() {
        return "a";
    }

    @GET
    @Path("a")
    public String getB() {
        return "b";
    }
}

请求http://host/a/a我总是得到“b”。

选择适当方法的策略是什么? 有什么方法可以了解不同资源的多条路径吗?

1 个答案:

答案 0 :(得分:3)

根据评论进一步编辑

我不知道RESTEasy中的任何报告工具提供了一系列带注释的服务类的重复匹配模式列表。但是,您可以使用以下方法之一解决此问题:

  1. grep和awk @Path的源代码,用于生成路径表达式的可排序列表
  2. 使用AnnotationReader implementation扫描类路径作为单元测试的一部分,并让它检测重复的正则表达式模式。

  3. 编辑以更好地定位问题

    RESTEasy使用regex based system for paths并选择最匹配的模式。如果发生碰撞,则使用匹配的最后一个。