기존에 Spring Boot 를 잘 사용중이었는데 어느날 신규API를 추가한 뒤로 기존 API에서 404 Not Found가 발생하기 시작했다.
{ "timestamp": "2019-09-02T02:09:12.322+0000", "status": 404, "error": "Not Found", "message": "No message available", "path": "/api/devicetelemetry/1/TestDevice1" } |
maven 빌드를 다시 해보기도 하고 API depth를 바꿔보기도 했다. 대소문자도 다시 확인하고..
대략 30분정도 삽질을 하다가 예전에 프레임워크 작업할 때 생각났던 component scan 옵션을 찾아봤다!
아무 패키지도 설정하지 않으면 기본적으로 최상위 패키지부터 순차적으로 찾아가는데 신규 API를 추가하면서 패키지구조가 약간 틀어졌다.
<기존> org.apache.telemetry
-> <변경> org.apache.service.telemetry
<신규> org.apache.status
이렇게 수정이 되니 신규로 추가된 최상위 패키지인 org.apache.status 만 읽게 되고 org.apache.service 하위는 읽지 않는 문제가 발생한 것이다.
org.apache.service.telemetry
org.apache.service.status
와 같은 형태로 맞추어주니 다시 동작하지만 동일한 상황이 재발하는 것을 방지하기 위해서 명시적으로 다음 선언을 추가하였다.
@ComponentScan(basePackages="org.apache.service")
'Rest API' 카테고리의 다른 글
Spring HttpPutFormContentFilter (0) | 2017.03.16 |
---|