Spring 中@RestController 中不支持请求方法@PathVariable

Request Method not Suported @PathVariable in @RestController in Spring

我有一个RestController,现在我用@PathVariable写了一个DELETE方法:

@RestController("/msisdns")
public class MsisdnsController {
    @DeleteMapping("/{msisdnToUnReserve}")
    public String unreserveMsisdin(@PathVariable String msisdnToUnReserve) { ... }
}

但总是得到同样的错误...:[=​​20=]

我试过:

@DeleteMapping("/{msisdnToUnReserve}")
public String unreserveMsisdin(@PathVariable("msisdnToUnReserve") String msisdnToUnReserve)

@RequestMapping(value = "/{msisdnToUnReserve}", method = RequestMethod.DELETE)
public String unreserveMsisdin(@PathVariable("msisdnToUnReserve") String msisdnToUnReserve)

还有更多但总是同样的错误,我无法找到方法

有什么帮助吗?

这是我的Zuul.yml,应该如何翻译URI?

PD:/trasnlator 在 Zuul 中配置 Spring Cloud Netflix。

我在没有指定 producesconsumes 时遇到过类似的问题。您可以尝试是否可以解决问题。选择合适的类型(在我的示例中为 JSON):

@DeleteMapping(value = "/{msisdnToUnReserve}", produces = org.springframework.http.MediaType#APPLICATION_JSON_VALUE)

使用@RequestParam 而不是@PathVariable 它会起作用

而您的 URL 将是这样的:localhost:8080/msisdn?id="whatever your id"