Spring

[Spring] Postman 404, 405 Error

Jwanna 2022. 10. 24. 10:14

Spring MVC를 공부하던 중 Postman에서 에러가 발생했다.

 

 

🚨 404 Error

404, Not Found

 

이유는 Spring 구동 파일인 Application.java 파일의 경로 문제였다.

 

수정 전
수정 후

 

자세한 원인은 Application.java의 @SpringBootApplication Annotation을 보면 확인할 수 있다.

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
        @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
    ...
}

 

Application.java 파일은 기본적으로 @SpringBootApplication이 작성되어 있는데,

@SpringBootApplication@ComponentScan을 포함하고 있다.

 

기본적으로 @ComponentScan은 하위 패키지만 스캔하므로,

작성된 파일의 최상위 패키지에 위치해야 스캔이 가능하다.

 

 

 

 

변경후 실행을 했더니?

 

🚨 405 Error

405, Method Not Allowed

 

현재 내가 작성한 코드의 POST 기능에는 URI Path를 받아오지 않는데,

URI Path를 입력해서 발생한 문제이다.

 

@PostMapping
public ResponseEntity postMember(...) {
    ...
}

@PatchMapping("/{member-id}")
public ResponseEntity patchMember(...) {
    ...
}

 

또는 POST를 사용해야 하는데, PATCHGET을 사용하는 등 잘못된 HTTP Method를 사용해도 405 Error가 발생한다.

 

 

 

해결