강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

박종혁님의 프로필 이미지
박종혁

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

@ControllerAdvice이 작동을 안해서 질문을 드립니다.

작성

·

188

0

@ControllerAdvice 부분입니다.

@ControllerAdvice
public class ExceptionHandle {

@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity<List<ValidResult>> validHandle(MethodArgumentNotValidException e){
return new ResponseEntity<>(makeValidResult(e.getBindingResult()), HttpStatus.INTERNAL_SERVER_ERROR);
}

private List<ValidResult> makeValidResult(BindingResult bindingResult){

List<ValidResult> list = new ArrayList<>();

for (FieldError error : bindingResult.getFieldErrors()) {
ValidResult validResult = new ValidResult(PropertyNamingUtils.changeBySnake(error.getField()), error.getDefaultMessage());
list.add(validResult);
}
return list;
}

 

그리고 컨트롤러 부분은

RestController
@RequiredArgsConstructor
public class DeliveryCtrl {

private final DeliveryService delService;

@PostMapping("/api/v1/fenote/pdtmng/deliveries")
public ResponseEntity<?> addDelivery(HttpServletRequest req, @Valid @RequestBody DeliveryVO deliveryVO) {
ShopSession shopSession = (ShopSession) WebUtils.getSessionAttribute(req, "shopSession");

DeliverySeVO vo = delService.addDelivery(shopSession, deliveryVO);
return new ResponseEntity<>(vo.getDelVO(), HttpStatus.OK);
}

 

이부분인데요 테스트코드로 @valid에 걸리게끔 계속 시도하는데
status 400 만 내보내고 @ControllerAdvice부분이 실행되지가 않습니다....

몇시간째 이유를 찾고 구글링해도 나오지 않아 결국 여기서 질문을드립니다

 

 

 

 

 

 

 

 

 

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 박종혁님

전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

 

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

 

추가로 다음 내용도 코멘트 부탁드립니다.

1. 실행 방법을 알려주세요.

2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.

박종혁님의 프로필 이미지
박종혁

작성한 질문수

질문하기