在Spring MVC Rest服务上,我在尝试匹配超出我配置的RequestMapping值的任何内容时遇到问题。

所以例如我有这个:

@RequestMapping(value = "{configKey}/{arguments:.*}", method = RequestMethod.GET)

表示匹配第二个路径变量之外的任何内容。问题是这样的可以正常工作:
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:.*}")

最佳答案

以下映射适合您

@RequestMapping(value = "{configKey}/**", method = RequestMethod.GET)

此映射称为default mapping pattern

08-24 22:00