Spring MVC レスト サービスでは、構成済みの RequestMapping 値を超えるものと一致させようとして問題が発生しています。
たとえば、私はこれを持っています:
@RequestMapping(value = "{configKey}/{arguments:.*}", method = RequestMethod.GET)
これは、2 番目のパス変数を超えるものに一致することを示しています。問題は、これが次のようにうまく動作することです:
get("/test/document")
これは404で終わりますが:
get("/test/document/download")
Spring がこの正規表現を処理できないのは奇妙です。私は実際に多くの解決策を試しましたが、どれもうまくいきませんでした。
以前は、JAX-RS で次の構成を使用していました。
@Path("/{configKey}/{arguments:.*}")
そして、すべてが良かったのですが、今私は移行していて、この問題を抱えています.
何が起こっているのか、これを修正する方法を知っている人はいますか?
編集:
追加{configKey}/**
- 機能しません
追加{configKey}/{arguments}/**
は機能しますが、たとえば次のように呼び出した場合:
get("/test/document/download")
test
構成キーとdocument
引数としてのみ取得します。引数では、. を超えるすべてのものを取得することを期待してい{configKey}
ます。たとえば、どのような場合でも機能するはずです。
get("/test/document")
get("/test/document/download")
get("/test/document/download/1")
get("/test/document/download/1/2")
get("/test/whatever/xxx/1/2/etc")
JAX-RSの構成で動作していたもの:@Path("/{configKey}/{arguments:.*}")