Caused by: java.lang.NumberFormatException: For input string: "chatting"
at java.base/java.lang.Long.parseLong(Long.java:711) ~[na:na]
at java.base/java.lang.Long.valueOf(Long.java:1163) ~[na:na]
chatting을 Long으로 변환하는 과정에서 문제가 발생했다.
왜 Long으로 변환하는 과정이 수행될까?
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
WebSocketHandler가 아닌 DispatcherServlet이 요청을 가로채서 수행하는 것을 확인할 수 있다. 그 이유는 일반 컨트롤러가 WebSocketHandler보다 우선순위가 높기 때문이다.
그렇다면 어떤 엔드포인트가 이를 가로챘을까?
/{qnaId}/
인 Path Variable이 포함된 엔드포인트가 이를 가로채서 qnaId 즉, Long으로 처리하려다 에러가 발생한 것이다.
/qna/
를 엔드포인트 앞에 추가하여 가로채는 현상을 막았다.