В настоящее время я пытаюсь установить сообщение с кодом статуса HTTP, генерируемым аннотированным исключением @ResponseCode.
Я определил исключение:
@ResponseStatus(value = HttpStatus.BAD_REQUEST)
public final class BadRequestException extends IllegalArgumentException {
/**
* The serial version UID.
*/
private static final long serialVersionUID = -6121234578480284282L;
public BadRequestException() {
super();
}
public BadRequestException(String message, Throwable cause) {
super(message, cause);
}
public BadRequestException(String message) {
super(message);
}
public BadRequestException(Throwable cause) {
super(cause);
}
}
Если выброшено исключение, я снова выбрасываю его в своем методе аннотации @ExceptionHandler:
@ExceptionHandler(RuntimeException.class)
public String handleRuntimeException(Exception e, HttpSession session) {
if (e instanceof BadRequestException) {
throw (BadRequestException)e;
}
return FAILURE;
}
Я обычно выкидываю это исключение следующим образом:
if (result.hasErrors()) {
throw new BadRequestException("Bad Request Message.");
}
Код состояния HTTP всегда возвращает только «HTTP Status 400 -» без установленного сообщения.
THX!