0

JAX-RS で次の 2 つの @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";
}

次の 3 つの URL を区別できません。

GET http://localhost:8080/pizza/20060718/#abcd
GET http://localhost:8080/pizza/20060718#abcd
GET http://localhost:8080/pizza/20060718

つまり、これら 3 つの URL はすべて「First」を返します。

@Path 定義の何が問題になっていますか?

ありがとう!

4

1 に答える 1

0

FWIW、どの JAX-RS 実装を使用しているかを述べるとよいでしょう。

また、「#」記号は有効な URI パス コンポーネント文字ではなく、実際には URI フラグメント コンポーネントの区切り文字であることに注意してください。そのため、JAX-RS 要求パス マッチング アルゴリズムの一部として解析されることはありません。基本的に、上記のすべてのケースで、"20060718" のみが一致します ("pizza" がアプリケーション コンテキスト パスであると仮定します)。

于 2013-04-09T15:34:44.840 に答える