개발을 하던 도중에 팀원에게 실행이 안된다는 이슈를 받았습니다.
에러 내용은 이렇습니다.
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'postController' defined in file [..\web\controller\PostController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kr.project.toy.web.service.PostApiService': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalStateException: PathVariable annotation was empty on param 0.
여기서 볼 부분은
PathVariable annotation was empty on param 0.
이 부분인데
확인을 해봤지만 분명 저의 컴퓨터에서는 잘 돌아갔습니다.
다른 팀원 컴퓨터에서는 실행을 하려고하면 이런 오류를 내 뱉는다고 하니
난감했습니다.
내용을 살펴보니 써있는 것 처럼 @PathVariable 문제였습니다.
아래 문제가 되는 코드입니다.
@GetMapping("/api/post/{postId}")
ResponseEntity<PostDTO> getPost(@SpringQueryMap @PathVariable Long postId);
위처럼 @PathVariable 의 value 속성을 생략하면 오류가 날때가 있습니다.
정확한 원인은 모르겠지만 이러한 오류 방지를 위해서
@GetMapping("/api/post/{postId}")
ResponseEntity<PostDTO> getPost(@SpringQueryMap @PathVariable("postId") Long postId);
이렇게 명시해주는게 안전합니다.