У меня есть веб-сервис отдыха. Если возникнет какое-либо исключение, веб-служба вернет ошибку http 500. Но я не хочу отправлять этот ответ об ошибке с трассировкой стека исключений. Я просто хочу отправить с кодом ошибки и сообщением об ошибке. Я не достиг этого. Как я могу это сделать?
Я уже пробовал аннотации @ControllerAdvice и @ExceptionHandler, но не смог. Когда я использовал аннотацию @ResponseStatus, всегда отправлял статическое значение «причина». Как я могу установить это значение? Спасибо за вашу помощь.
public class SendMessageController{
private Logger log = LogManager.getLogger(getClass());
@Autowired
private QueueService queueService;
@RequestMapping(value="/message/check", method = RequestMethod.POST, headers={ "content-type=application/json"})
public @ResponseBody
ApiResponse sendMessage(@RequestBody String requestMessage) throws Exception {
try {
return new ApiResponse(queueService.processRequestForJSONString(requestMessage);
} catch (Exception e) {
throw new GenericException(HttpStatus.INTERNAL_SERVER_ERROR, e.getMessage());
//throw e;
}
}
@ResponseStatus(value=HttpStatus.INTERNAL_SERVER_ERROR, reason="Exception Message")
public class GenericException extends Exception {
public HttpStatus httpCode;
public String errorMessage;
public GenericException(HttpStatus httpCode, String errorMessage){
this.httpCode = httpCode;
this.errorMessage = errorMessage;
//I can't set "reason"
}
}
}