Regex 使用正则表达式进行JAX-RS URI匹配
我在JAX-RS中定义了以下两个@PATH: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(){
@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”是您的应用程序上下文路径)