Skip to content
Snippets Groups Projects
Commit 206a5f5f authored by Yifan Ye's avatar Yifan Ye Committed by Sherman Yang
Browse files

Adding HttpMessageConversionException handler

parent 47b909f8
No related branches found
No related tags found
2 merge requests!68Master,!64Adding HttpMessageConversionException handler
......@@ -9,6 +9,7 @@ import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageConversionException;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.lang.NonNull;
import org.springframework.web.bind.MethodArgumentNotValidException;
......@@ -48,6 +49,16 @@ public class RestExceptionHandler extends ResponseEntityExceptionHandler {
return ResponseEntity.badRequest().body(appError);
}
@ExceptionHandler(value = HttpMessageConversionException.class)
public ResponseEntity<AppError> handleHttpMessageConversionException(HttpMessageConversionException e){
AppError appError = AppError.builder()
.code(HttpStatus.BAD_REQUEST.value())
.message(e.getMessage())
.build();
jaxRsDpsLog.error(e.getMessage(), e);
return ResponseEntity.badRequest().body(appError);
}
@NonNull
@Override
public ResponseEntity<Object> handleNoHandlerFoundException(@NonNull NoHandlerFoundException ex, @NonNull HttpHeaders headers,
......
......@@ -14,6 +14,7 @@ import org.springframework.core.MethodParameter;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageConversionException;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.MethodArgumentNotValidException;
......@@ -68,6 +69,20 @@ public class RestExceptionHandlerTest {
Mockito.verify(jaxRsDpsLog).error("Bad request", exception);
}
@Test
public void shouldReturnBadRequestOnHttpMessageConversionException() {
HttpMessageConversionException exception = new HttpMessageConversionException("Bad request");
ResponseEntity<AppError> response = restExceptionHandler.handleHttpMessageConversionException(exception);
assertEquals(400, response.getStatusCodeValue());
assertNotNull(response.getBody());
AppError body = response.getBody();
assertEquals(400, body.getCode());
assertEquals("Bad request", body.getMessage());
Mockito.verify(jaxRsDpsLog).error("Bad request", exception);
}
@Test
public void shouldUseValuesInAppExceptionInResponseOnAppException() {
AppException exception = new AppException(409, "any reason", "any message");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment