현재 저는 팀원들과 프로젝트를 진행하고 있습니다. 프론트엔드 3명, 백엔드 3명으로 구성되어 있으며 저는 프론트엔드를 맡게되었습니다.
프로젝트는 다음과 같이 진행중입니다.
- Java 17
- Spring Boot 3.2.0
- Gradle
- React
문제
채팅방 생성 과정에서 @RequestBody로 데이터를 받아오는데 null값이 나오고 있었습니다.
// 채팅방 생성
@PostMapping("/chatroom/create")
@Operation(summary = "채팅방 생성", description = "userSeq를 통해 채팅방을 생성합니다.")
public ResponseEntity<ChatRoomResponseDto> create(@RequestBody ChatRoomRequestDto chatRoomRequestDto) {
log.info("chatRoomDto : {}", chatRoomRequestDto);
ChatRoomResponseDto chatRoomResponseDto = chatService.createChatRoom(chatRoomRequestDto);
return ResponseEntity.ok(chatRoomResponseDto);
}
프론트가 아직 구현이 안되어있어서 swagger로 테스트를 해보았습니다.
Content-Type이 Json으로 되어있는것도 확인하였습니다. 또한 이름도 정확하게 되어있었습니다.
구글링해서 Jackson이 원인일 수도 있다는 글을 발견했지만 저희 프로젝트는 해당하는 바가 없었습니다.
문제 해결
문제는 import에 있었습니다.
https://stackoverflow.com/questions/38935912/requestbody-is-getting-null-values
stackoverflow에서 같은 증상을 가진 사람의 글을 발견했고 저희 프로젝트를 확인하니 import가 잘못 되어있었습니다.
수정 전
import io.swagger.v3.oas.annotations.parameters.RequestBody;
수정 후
import org.springframework.web.bind.annotation.RequestBody;
해당 부분을 삭제하고 다시 해보니 값이 잘 들어오는걸 확인할 수 있었습니다.
초보 개발자의 글이라 부족한 점이 많습니다. 잘못된 점 등을 말씀해주시면 감사히 받겠습니다.