4

上記のコードを検討してください

@Path("a")
@Produces("text/plain")
public class A {

    @GET
    @Path("a")
    public String getA() {
        return "a";
    }

    @GET
    @Path("a")
    public String getB() {
        return "b";
    }
}

http:// host / a / aをリクエストすると、常に「b」が表示されます。

適切な方法を選択するための戦略は何ですか?異なるリソースへの複数のパスについて通知を受ける方法はありますか?

4

1 に答える 1

3

コメントに照らしてさらに編集

さまざまな注釈付きサービスクラスにわたって重複する一致パターンのリストを提供するRESTEasy内のレポートツールを知りません。ただし、次のいずれかの方法を使用してこの問題に取り組むことができます。

  1. @Pathのソースコードをgrepおよびawkして、パス式の並べ替え可能なリストを生成します
  2. AnnotationReader実装を使用して、単体テストの一部としてクラスパスをスキャンし、重複した正規表現パターンを検出します。

質問をより的確にターゲットにするように編集

RESTEasyは、パスに正規表現ベースのシステムを使用し、最も一致するパターンを選択します。衝突が発生した場合は、最後に一致したものが使用されます。

于 2010-11-06T09:23:49.360 に答える