현재 개발 중인 프로젝트에서 다른 팀원이 만들어준 컨트롤러를 내 작업과 Merge했다. 이후 프론트 엔드 팀에 제공하기 위해 서버로 배포했는데, Swagger에서 403 에러가 발생했다.
출력된 에러를 확인해보니
java.lang.NoSuchMethodError: 'void org.springframework.web.method.ControllerAdviceBean
위와 같은 에러가 뜬걸 확인할 수 있었다.
컨트롤러 단의 예외처리를 반환 타입에 관계없이 수행하기 위해 RestControllerAdvice를 만들어 사용했는데, 해당 클래스를 Swagger가 분석하면서 발생한 문제 같았다.
Swagger 관련 설정 중 springdoc.packages-to-scan 속성이 있는데, 이 값으로 준 패키지에 해당 어드바이스 클래스가 포함되어 있었기 때문으로 보였다.
문제 해결 방안으로 Swagger Version 업그레이드가 있었는데, 내가 받은 의존성이 가장 최신버전이라서 변경하는 것이 오히려 다른 문제를 만들것 같아서 다른 방법을 찾았다.
해당 클래스 자체를 Swagger가 스캔하지 못하게만 만들면 된다.
다행히 Swagger에선 @Hidden 애너테이션을 제공하기 때문에 쉽게 해결할 수 있었다.