Я получаю это исключение. Может кто-нибудь выяснить, что является причиной этого?
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:982)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.shiksha.util.filters.PerformanceFilter.doFilter(PerformanceFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.shiksha.util.filters.HttpRequestFilter.doFilter(HttpRequestFilter.java:68)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.filterAndRecordMetrics(WebMvcMetricsFilter.java:158)
at
...
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException
Мой / ошибка контроллера
@RestController
public class IndexController implements ErrorController {
private static final String PATH = "/error";
private static final Logger logger = LoggerFactory.getLogger(IndexController.class);
@RequestMapping(value="/*")
public ResponseEntity<?> notFound(HttpServletRequest request) {
Integer statusCode = null;
Exception exception = null;
try {
statusCode = (Integer) request.getAttribute("javax.servlet.error.status_code");
exception = (Exception) request.getAttribute("javax.servlet.error.exception");
}catch(Exception e) {
logger.error("Exception Case 1 from Index Controller");
}
ValidationErrorResponse validationResponse = new ValidationErrorResponse();
validationResponse.setField("url");
validationResponse.setMessage("Url Not Found.");
HttpStatus finalStatus = HttpStatus.NOT_FOUND;
if(statusCode != null) {
if(statusCode == 404) {
validationResponse.setMessage("Url Not Found.");
}else {
validationResponse.setMessage("Some error occured");
}
finalStatus = HttpStatus.valueOf(statusCode);
if(exception != null) {
try {
String exceptionMessage = StringUtils.isNotBlank(exception.getMessage())?exception.getMessage():"Exception : Logged from Index Controller";
LogException.logException(exceptionMessage, exception);
} catch(Exception e) {
logger.error("Exception Case 2 from Index Controller");
}
}
}
validationResponse.setField("url");
return new ResponseEntity<>(validationResponse, finalStatus);
}
@Override
public String getErrorPath() {
// TODO Auto-generated method stub
return PATH;
}
}
Что происходит, если мой проект также имеет @ExceptionHandler, но после того, как я запускаю службу на Prod , через некоторое время исключения перестают переходить к @ExceptionHandler. Вместо этого они приходят в ErrorController, что не должно происходить, так как я уже поймал исключение. Исключением обычно является NullPointer, который я уже уловил в @ ExceptionHandler.