본문 바로가기

WEB/Spring

[Spring] @RequestBody로 받은 데이터가 null 일때

현재 저는 팀원들과 프로젝트를 진행하고 있습니다. 프론트엔드 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로 테스트를 해보았습니다.

 

swagger 테스트

 

 

 

Content-Type이 Json으로 되어있는것도 확인하였습니다. 또한 이름도 정확하게 되어있었습니다.

구글링해서 Jackson이 원인일 수도 있다는 글을 발견했지만 저희 프로젝트는 해당하는 바가 없었습니다.

 

문제 해결

 

문제는 import에 있었습니다.

https://stackoverflow.com/questions/38935912/requestbody-is-getting-null-values

 

@RequestBody is getting null values

I have created a simple REST service (POST). But when i call this service from postman @RequestBody is not receiving any values. import org.springframework.http.MediaType; import org.springframewo...

stackoverflow.com

 

stackoverflow에서 같은 증상을 가진 사람의 글을 발견했고 저희 프로젝트를 확인하니 import가 잘못 되어있었습니다.

 

 

 

수정 전

import io.swagger.v3.oas.annotations.parameters.RequestBody;

 

수정 후

import org.springframework.web.bind.annotation.RequestBody;

 

해당 부분을 삭제하고 다시 해보니 값이 잘 들어오는걸 확인할 수 있었습니다.

 


초보 개발자의 글이라 부족한 점이 많습니다. 잘못된 점 등을 말씀해주시면 감사히 받겠습니다.