Как перехватить NestedServletException весной?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как перехватить NestedServletException весной?

Сообщение Anonymous »

Мое приложение зависит от набора внешних перехватчиков Spring, которые выдают исключение, и моя служба возвращает HTTP 500. Я хотел бы перехватить исключение, и если трассировка стека соответствует некоторому тексту, я хотел бы вернуть HTTP 400. вместо. Выдаваемое исключение имеет тип NestedServletException.
Я пробовал реализовать @ControllerAdvice, но, похоже, оно не перехватывает NestedServletException.< /p>
@ControllerAdvice
public class ErrorHandlingController {

@ExceptionHandler(NestedServletException.class)
public ResponseEntity exceptionHandler(NestedServletException e) {
return new ResponseEntity(e.getMessage(), HttpStatus.BAD_REQUEST);
}
}

Есть идеи, как это поймать? Трассировка стека выглядит примерно так:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is: The requested secret was not found.
| at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
| at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)
| at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
| at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:200)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
| at com.amazon.core.platform.runtime.FinalRequestFilter.doFilter(FinalRequestFilter.java:72)
| at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:354)
| at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:267)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:169)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)
| at com.amazon.spring.platform.runtime.RequestPropagatingFilterProxy$RequestPropagatingFilterChainWrapper.doFilter(RequestPropagatingFilterProxy.java:101)


Подробнее здесь: https://stackoverflow.com/questions/785 ... -in-spring
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»