В rest api решил сделать custom exception handler через @ControllerAdvice
. И хотел, чтобы клиент получал, например, лишь 3 поля моего класса Exception
. В клиентской части имеется следующий код:
try {
ResponseEntity<> result = restTemplate.postForEntity(uri, entity, Example.class);
} catch (HttpClientErrorException ex) {
System.out.println("++++"+ex.getResponseBodyAsString());
}
Вывод в консоль:
++++{"cause":null,"stackTrace":[{"methodName":"handleMethodArgumentNotValid","fileName":"CustomExceptionHandler.java","lineNumber":49,"className":"net.thumbtack.school.netexam.serverexception.CustomExceptionHandler","nativeMethod":false},{"methodName":"handleException","fileName":"ResponseEntityExceptionHandler.java","lineNumber":169,"className":"org.springframework.web.servlet.mvc.method.annotation.ResponseEntityExceptionHandler","nativeMethod":false},{"methodName":"invoke0","fileName":"NativeMethodAccessorImpl.java","lineNumber":-2,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":true},{"methodName":"invoke","fileName":"NativeMethodAccessorImpl.java","lineNumber":62,"className":"sun.reflect.NativeMethodAccessorImpl","nativeMethod":false},{"methodName":"invoke","fileName":"DelegatingMethodAccessorImpl.java","lineNumber":43,"className":"sun.reflect.DelegatingMethodAccessorImpl","nativeMethod":false},{"methodName":"invoke","fileName":"Method.java","lineNumber":498,"className":"java.lang.reflect.Method","nativeMethod":false},{"methodName":"doInvoke","fileName":"InvocableHandlerMethod.java","lineNumber":209,"className":"org.springframework.web.method.support.InvocableHandlerMethod","nativeMethod":false},{"methodName":"invokeForRequest","fileName":"InvocableHandlerMethod.java","lineNumber":136,"className":"org.springframework.web.method.support.InvocableHandlerMethod","nativeMethod":false},{"methodName":"invokeAndHandle","fileName":"ServletInvocableHandlerMethod.java","lineNumber":102,"className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod","nativeMethod":false},{"methodName":"doResolveHandlerMethodException","fileName":"ExceptionHandlerExceptionResolver.java","lineNumber":404,"className":"org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver","nativeMethod":false},{"methodName":"doResolveException","fileName":"AbstractHandlerMethodExceptionResolver.java","lineNumber":61,"className":"org.sp
Возможно ли в респонсе оставить только поля класса моего Exception
, а остальные убрать(cause,stackTrace и т.д.)
Это должно вам помочь:
@ControllerAdvice
public class HandlerExceptionController {
private static final String STATUS = "status";
private static final String MESSAGE = "message";
@ExceptionHandler(ValidationException.class)
public ResponseEntity<Map<String, Object>> exceptionHandler(ValidationException exception) {
Map<String, Object> responseException = new HashMap<>();
responseException.put(STATUS, HttpStatus.UNPROCESSABLE_ENTITY.value());
responseException.put("errors", exception.getErrors());
responseException.put(MESSAGE, exception.getMessage());
return new ResponseEntity<>(responseException, HttpStatus.UNPROCESSABLE_ENTITY);
}
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
у меня есть два файла Advertizingjava и Main
Как узнать нарисован (отображен) ли на экране тот или иной элемент разметки на экране зная его id? ДопустимВызывается экран, на котором генерируется:...
Я хочу открыть новое окно в контроллере другого окна через другой классНа пример вот функция которая находится в контроллере: