반응형
문제 상황
스프링 부트에서 다음과 같은 컨트롤러를 생성하고,
@RestController
public class UserController {
@GetMapping("users")
public ResponseEntity<?> select(@RequestBody User user) {
String introduction = "안녕하세요. 저의 이름은 " + user.getName()+ "입니다."
+ " 저의 취미는 " + user.getHobby() + "입니다.";
return ResponseEntity.ok(introduction);
}
}
다음과 같이 HTTP GET 요청을 보냈다. 하지만 돌아온 것은 400 Bad Request 에러였다.
그리고 콘솔창에는 다음과 같은 에러가 출력되었다.
org.springframework.http.converter.HttpMessageNotReadableException:
분명히 @RequestBody에 해당하는 메세지(name, hobby)를 함께 전송했지만, 컨트롤러는 이를 인식하지 못했다.
원인
HTTP GET 요청의 body 형식을 Text로 보냈기 때문이다.
해결
HTTP GET 요청의 body 형식을 JSON으로 변경하여 해결할 수 있었다.
다시 요청을 보내니 Controller가 정상적으로 응답을 보낸다.
반응형
'스프링 > 스프링부트' 카테고리의 다른 글
[Spring Boot]스프링부트와 Gradle을 통해 Swagger 2 시작하기 (0) | 2021.05.22 |
---|---|
[JUnit] 스프링부트 + junit5 환경에서 MockMvc로 컨트롤러 테스트하기 (0) | 2021.04.29 |
[Spring Boot] logback을 통해 스프링부트 로그 설정 시작하기 (0) | 2021.04.04 |
AWS EC2, RDS를 통한 스프링 부트 프로젝트 배포 및 설정하기 (0) | 2021.03.28 |
[Spring Boot] 스프링부트 프로젝트에 Spring Data JPA 적용하기 (0) | 2021.01.15 |
댓글