RestEasy的如何解决冲突@Path
问题描述:
@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”。
选择合适方法的策略是什么? 任何方式来获得有关不同资源的多条路径的信息?
答
在评论
我不知道,在一系列注解服务类提供的重复匹配模式的列表内的RESTEasy任何报告工具的光进一步编辑。但是,你可以接近使用下列方法之一这个问题:
- grep和awk的源代码@Path生成路径的排序列表中的表达式
- 使用AnnotationReader implementation扫描在你的类路径中的一部分的单元测试,并让它检测到重复的正则表达式模式。
编辑,以更好地针对问题
的RESTEasy使用regex based system for paths并选择最紧密匹配的模式。如果发生碰撞,则使用匹配的最后一个。
是的,我明白了,但考虑一个200类WS或使用二进制类库中的类。您必须手动控制@Path注释。编译器不会获取重复项。我很好奇规范说什么,但我找不到那个问题。 – PeterMmm 2010-11-06 09:35:21
根据评论更新的答案 – 2010-11-06 09:59:11
@PeterMmm你是如何得到解决这个问题的?如果您找到答案,将其发布给其他人以获益,将会非常有用。 – 2010-11-10 09:09:41