0

我在 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 定义有什么问题?

谢谢!

4

1 回答 1

0

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

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

于 2013-04-09T15:34:44.840 回答