我在JAX-RS中定义了以下两个@PATH:
@Path("{ontoId: [a-zA-Z0-9]+}/{version: [0-9]+}")
@GET
public String getSomething(){
return "First";
}
@Path("{ontoId: [a-zA-Z0-9]+}/{version: [0-9]+}/{entity:#([a-zA-Z0-9]+)}")
@GET
public String getAnotherthing(){
return "Second";
}
无法区分以下三个网址:
GET http://localhost:8080/pizza/20060718/#abcd
GET http://localhost:8080/pizza/20060718#abcd
GET http://localhost:8080/pizza/20060718
也就是说,所有这三个网址都将返回“第一”。
我的@Path定义有什么问题?
谢谢!
答案 0 :(得分:0)
FWIW,最好说明你正在使用的JAX-RS实现。
另请注意,'#'符号不是有效的URI路径组件字符,实际上是URI片段组件的分隔符。因此,它不会被解析为JAX-RS请求路径匹配算法的一部分。基本上,在所有这些情况下,只有“20060718”才会匹配(假设“披萨”是您的应用程序上下文路径)。