Мне нужно иметь контроллер (или другой компонент), который обрабатывает все ошибки 404 и гибко перенаправляет на правильную страницу (это основано на таблице src/target). Я нашел несколько вопросов об обработке брошенные исключения из контроллеров, так что я сделал следующее:Spring Boot Web-приложение - контроллер перенаправления
@ControllerAdvice
public class ServiceExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(Throwable.class)
@ResponseBody
ResponseEntity<String> handleControllerException(HttpServletRequest req, Throwable ex) {
String slug = req.getRequestURI(); // this is the URL that was not found
URI location=null;
try {
// lookup based on slug ...
location = new URI("http://cnn.com"); // let's say I want to redirect to cnn
} catch (URISyntaxException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setLocation(location);
return new ResponseEntity<String>("Page has permanently moved", responseHeaders, HttpStatus.PERMANENT_REDIRECT);
}
}
Я не сделал какой-либо другой конфигурации изменения
двух вопросов с этого:
- Он ловит исключения, брошенные другими моими контроллерами, а не 404 ошибки
- Он ловит ВСЕ типы исключений, а не только 404
Любые идеи о том, как реализовать своего рода «уловку»?
http://stackoverflow.com/questions/28902374/spring-boot-rest-service-exception-handling –