2015-11-21 4 views
1

Я пытаюсь перехватить tomcat default 404 page using ExceptionHandler. Все, что я хочу сделать, это показывает индексную страницу в случае 404.Spring ControllerAdvice ExceptionHandler не работает

@ControllerAdvice 
public class AdvisorController { 

@ExceptionHandler(NoHandlerFoundException.class) 
public String handle404(Exception ex) { 
    return "index"; 
} 
} 

Но, к сожалению, я могу видеть только по умолчанию 404 кот страницы.

Мой веб-инициализатор выглядит следующим образом:

public class CRManWebAppInitializer implements WebApplicationInitializer { 

@Override 
public void onStartup(ServletContext servletContext) throws ServletException { 
    AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext(); 
    //ctx.register(CRManMVCConfig.class); 
    ctx.register(CRManMVCConfig.class, CRManJPAConfig.class, CRManSecurityConfig.class); 
    ctx.setServletContext(servletContext); 

    servletContext.addListener(new ContextLoaderListener(ctx)); 

    DispatcherServlet dispatcherServlet = new DispatcherServlet(ctx); 
    dispatcherServlet.setThrowExceptionIfNoHandlerFound(true); 

    Dynamic registration = servletContext.addServlet("dispatcher", dispatcherServlet); 
    registration.setLoadOnStartup(1); 
    registration.addMapping("/"); 
} 
} 

Пожалуйста, помогите. Что я делаю не так?

ответ

2

Я нашел проблему:

@Override 
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) { 
    configurer.enable(); 
} 

После удаления все работает нормально. Может быть, это поможет кому-то

Смежные вопросы