aws ec2 서버에 업로드하고 포스트맨을 통해 저장하는 테스트를 하는데
file을 업로드할 부분에 업로드하지않고 보내봤더니 에러가 발생했다
postman test :
에러로그 :
com.timeline.jwt.TokenProvider: - UserDetails- 아이디 : 1
2021-06-10 00:49:13.530 WARN 18107 --- [nio-8080-exec-6] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.multipart.support.Missi
ngServletRequestPartException: Required request part 'file' is not present]
컨트롤러 :
@PostMapping(path = "/master/save",consumes = {"multipart/form-data"})
public ResponseEntity<TimelineMasterListResponseDto> saveMaster(@RequestPart(value="dto") List<TimelineMasterSaveRequestDto> timelineMasterSaveRequestDto, @RequestPart(value="file") MultipartFile file) throws IOException {
String imgPath = s3Service.upload(timelineMasterSaveRequestDto.get(0).getFilePath(), file);
timelineMasterSaveRequestDto.get(0).setFilePath(imgPath);
return ResponseEntity.ok(timelineService.saveMaster(timelineMasterSaveRequestDto.get(0)));
}
해결 :
찾아보니 required=false 해주면 해당 필드가 쿼리스트링에 존재하지 않아도 예외가 발생하지 않는다고 한다
@RequestPart(value="file",required = false)
파일부분에 추가해주니 잘 되었다.
참고 :
https://velog.io/@hellozin/RequestParamrequired-false-%EC%A3%BC%EC%9D%98%ED%95%A0-%EC%A0%90
'Language > Java' 카테고리의 다른 글
Can not deserialize instance of [] out of START_OBJECT token 에러 (0) | 2022.01.04 |
---|---|
javax.annotation.meta.When 에러 (0) | 2021.06.11 |
jpa에서 top, limit, orderby 쓰기 (0) | 2021.06.07 |
Is Java “pass-by-reference” or “pass-by-value”? | Stack Overflow 정리 (0) | 2020.12.13 |
How do I compare strings in Java? | Stack Overflow 정리 (0) | 2020.12.11 |