Regex 使用正则表达式进行JAX-RS URI匹配

Regex 使用正则表达式进行JAX-RS URI匹配,regex,jax-rs,Regex,Jax Rs,我在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(){

我在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";
}
无法区分以下三个URL:

GET http://localhost:8080/pizza/20060718/#abcd
GET http://localhost:8080/pizza/20060718#abcd
GET http://localhost:8080/pizza/20060718
也就是说,这三个URL都将返回“First”

我的@Path定义有什么问题


谢谢

FWIW,最好说明您使用的是什么JAX-RS实现

还要注意,“#”符号不是有效的URI路径组件字符,实际上是URI片段组件的分隔符。因此,它不会被解析为JAX-RS请求路径匹配算法的一部分。本质上,在上述所有情况下,只需匹配“20060718”(假设“pizza”是您的应用程序上下文路径)