4

考虑上面的代码

@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”。

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

4

1 回答 1

3

根据评论进一步编辑

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

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

编辑以更好地针对问题

RESTEasy 使用基于正则表达式的路径系统并选择最匹配的模式。如果发生冲突,则使用最后一个匹配的。

于 2010-11-06T09:23:49.360 回答