私たちはResteasy 3.0.9をJAX-RS Webサービス用に使用していましたが、最近3.013に切り替わりました。ここで多くのRESTEASY002142: Multiple resource methods match request
警告が表示され始めました。JAX-RSメソッドのパラメータの型を見直すことはできますか?
例えば、我々のような方法があります:
@Path("/{id}")
public String getSome(UUID id)
@Path("/{id}")
public String getSome(int id)
を私は(RESTEasyには、すべての候補の中から最初の方法を選択しているようだとして、おそらく、私たちは非常に幸運だった、それは3.0.9で働いていたかどうかはわかりません3.0.19種類の候補メソッド)。
一つの解決策は、明示的に正規表現を指定することです:@Path("/{id : [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}}")
しかし、どういうわけか、メソッドのパラメータを調べて自動的に適切な正規表現を構築するためのRESTEasyを指示する方法はありますか?
回答ありがとうございます。しかし、質問には完全には答えません。 JAX-RS 2.0仕様では、要求一致のステップ2でパラメータ型を調べる実装を禁止していません。 Cの各クラスZについて、各サブリソースメソッドとロケータの正規表現をEに追加します。 i。各サブリソースメソッドDについて、R(TD)を追加する。ここで、TDはサブリソースメソッドのURIパステンプレートである。 Resteasyは既に '' '/ things/{id}' ''のようなテンプレートを正規表現に変換します。したがって、型に基づく正規表現の可能性があります。 – relgames
JAX-RS 2.0仕様では、「少なくとも、それはしないでください」という部分は正しくありません。私が間違っている場合は、仕様書で禁止されている正確な場所を指摘してください。 – relgames
@relgames JAX-RS 2。仕様書に記述されているようにアルゴリズムを使用する必要はないが、仕様書に記述されているアルゴリズムで生成されたものと同等の結果を生成しなければならないと述べている。 JAX-RS 2.0仕様では、メソッドの型パラメータを調べる実装を禁止していません。私が知る限り、RESTEasyは実装していません。 –