2016-07-19 2 views
1

я использую загрузку весной и я начинаю управлять ошибкуHandle ResourceNotFoundException, сообщение не хорошо

создать обработку исключений для поддержки Ressource, которые не найдены.

@ControllerAdvice 
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler { 

    @ExceptionHandler(ResourceNotFoundException.class) 
    private ResponseEntity<Void> handleResourceNotFoundException(ResourceNotFoundException e) { 
     return ResponseEntity.notFound().build(); 
    } 
} 

В моем контроллере я

@RequestMapping(value = "/members/{memberId}", method = RequestMethod.GET) 
public ResponseEntity getMemberById(@PathVariable("memberId") Long memberId) throws ResourceNotFoundException { 
    MemberDto memberDto = memberService.getMemberById(memberId); 
    return new ResponseEntity(memberDto, HttpStatus.OK); 
} 

@Override общественного MemberDto getMemberById (Long MemberID) Броски ResourceNotFoundException { член Член = memberRepository.findOne (MemberID);

if (member == null) { 
     throw new ResourceNotFoundException("Member not found"); 
    } 

    return convertToMemberDto(member); 
} 

У меня есть только несколько элементов таким образом, если я позвоню

локальный:/Участники/999

Я вижу в заголовки ответа хром

HTTP/1.1 404 Not Found 
Server: Apache-Coyote/1.1 
X-Content-Type-Options: nosniff 
X-XSS-Protection: 1; mode=block 
Cache-Control: no-cache, no-store, max-age=0, must-revalidate 
Pragma: no-cache 
Expires: 0 
X-Frame-Options: DENY 
Content-Length: 0 
Date: Tue, 19 Jul 2016 01:04:25 GMT 

Почему я не получить сообщение: Member не найден? Это хороший способ справиться с ошибкой с весенним ботинком? Как управлять различными типами ошибок в контроллере?

ответ

0

Вы хотите изменить свой обработчик исключений, чтобы вернуть тело с сообщением об ошибке вы хотите вернуться, т.е .:

@ControllerAdvice 
public class RestResponseEntityExceptionHandler extends ResponseEntityExceptionHandler { 

    @ExceptionHandler(ResourceNotFoundException.class) 
    private ResponseEntity<Void> handleResourceNotFoundException(ResourceNotFoundException e) { 
      // log exception 
      return ResponseEntity 
      .status(HttpStatus.FORBIDDEN) 
      .body("Member not found"); 
    } 
} 
Смежные вопросы