목록405 (2)
Cronex

이 전 디버깅과 동일하게 진행되다가 dispatcherServlet에서 HandleAdapter의 handler 메소드를 실행하며 몇 개의 클래스를 더 거쳐서 controller를 실행됩니다. 이제 작성한 서비스에서 에러를 던지면 위에서 보이는 catch 블록으로 들어오게 됩니다. dispatcherServlet 에서는 catch문에서 dispatchException에 서비스에서 던진 에러를 할당하고 processDispatchResult를 실행한다. processDisptchResult에서는 handler를 찾아서 processHandlerException()을 호출한다. 여기서 핸들러[ mappedHandler.handler ]는 아래서 볼 수 있듯이 패키지를 포함하여 method 이름 인자까지 포함..

spring-boot 와 vue로 프로젝트 중 vue에서 request를 보내면 405 error를 발생시키면서 method "POST"를 지원하지 않는다는 로그를 보았다. 하지만 작성한 api는 POST였고... 무엇이 문제인지 모른 채 있다가, 겨우.. 해결하였다. 결론 결론부터 말하자면, 해당 api 에서 특정상황에서 exception을 발생시키는데 exception 발생 시 내부적으로 servlet path = "/error" 로 forward하는데 따로 설정하지 않은 상태에서의 /error path를 지원하는 메소드는 GET, HEAD 였고 api요청으로는 POST로 던졌기 때문에 "POST /error" 로 인식되어 method POST 는 지원하지 않는다는 exception을 발생시키며 st..