Spring Boot Controller не отображает PathVariables в параметры при отладке - PullRequest
0 голосов
/ 03 июля 2019

Я пытаюсь создать простую конечную точку REST для DELETE.Код выглядит следующим образом:

@RequestMapping(value = "/api/chat/v1/user", produces = 
MediaType.APPLICATION_JSON_VALUE)
public class UserApiController {
    @DeleteMapping(value = "channels/{channelSid}")
    @ResponseStatus(value = HttpStatus.NO_CONTENT)
    public Map<String, String> deleteChannel(@RequestHeader(HttpHeaders.AUTHORIZATION) String authorization, @PathVariable String channelSid) {
        UserInfo userInfo = userTokenDecryptor.parseAndValidate(authorization);

        chatService.deleteChannel("", channelSid);
        return Map.of(
                "chat_channel_sid", channelSid
        );
    }
}

Я пытаюсь получить значение, переданное в URL, вместо channelSid в качестве параметра метода String channelSid.Как я понимаю, Spring должен делать это сопоставление, когда оба имени совпадают.

Ниже приводится список cURL, в который я играю:

curl -X DELETE \
  http://localhost:8082/api/chat/v1/user/channels/123456789 \
  -H 'Accept: */*' \
  -H 'Authorization: kjhbdfakjhgsdhkj' \
  -H 'Cache-Control: no-cache' \
  -H 'Connection: keep-alive' \
  -H 'Host: localhost:8082' \
  -H 'content-length: '

Теперь, чтобы проверить функциональностьиз других компонентов мне нужно отладить этот код, но во время работы с отладчиком IntelliJ Idea я получаю следующий ответ:

{
    "timestamp": "2019-07-03T09:38:04.640+0000",
    "status": 500,
    "error": "Internal Server Error",
    "message": "Invalid parameter name \"\"",
    "path": "/api/chat/v1/user/channels/123456789/"
}

Исключение на сервере следующее:

java.lang.reflect.MalformedParametersException: Invalid parameter name ""
        at java.base/java.lang.reflect.Executable.verifyParameters(Executable.java:382) ~[na:na]
        at java.base/java.lang.reflect.Executable.privateGetParameters(Executable.java:412) ~[na:na]
        at java.base/java.lang.reflect.Executable.getParameters(Executable.java:353) ~[na:na]
        at org.springframework.core.StandardReflectionParameterNameDiscoverer.getParameterNames(StandardReflectionParameterNameDiscoverer.java:39) ~[spring-core-5.1.6.RELEASE.jar:5.1.6.RELEASE]

Дополнительная информация: ЭТОГО НЕ происходит, когда я запускаю сервер вместо отладки.Эта проблема относится только к отладке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...