Socket.getInputStream.read (& hellip;) создает исключение SocketException на Android, когда сервер отправляет пакет FIN

Вы должны поместить это на свой обработчик.

@ControllerAdvice
public class CustomResponseEntityExceptionHandler {

    @ExceptionHandler(value = { MissingServletRequestParameterException.class })
    public ResponseEntity<ApiError> handleConflict(MissingServletRequestParameterException ex, WebRequest request) {
        String message = ex.getParameterName() + " cannot be empty";
        ApiError apiError = new ApiError(ex.getMessage(), message, 1000);
        return new ResponseEntity < ApiError > (apiError, null, HttpStatus.BAD_REQUEST);
    }
}

UPDATE

Я не знаю, как вы можете получить сообщение по умолчанию, но в качестве обходного пути вы можете сделать подтверждение на вашем контроллере и выброс пользовательского исключения, если параметр пуст, а затем обработать в CustomResponseEntityExceptionHandler.

Что-то вроде следующего:

Установите required=false

@RequestMapping(value = "/minimumstock")
public Product product(@RequestParam(required = false) String sku, @RequestParam(value = "stock.branch.id") String branchID) {
    if (StringUtils.isEmpty(sku)) 
        throw YourException("Product.sku cannot be empty");

    return null;
}
0
задан Remy Lebeau 18 January 2019 в 23:40
поделиться