Spring MVC обработка исключений без web.xml, который основан только на аннотациях - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь создать пользовательское представление JSP для кодов состояния Http в весеннем mvc, используя только аннотации , не используя web.xml , я сгенерировал глобальный обработчик исключений с аннотацией @AdviceController и определил некоторые @ExceptionHandlerметоды, но я все еще получаю: сообщение tomcat 404 по умолчанию

Вот моя конфигурация на основе аннотаций

com.example.demo.config.AppConfig

 @EnableWebMvc
    @Configuration
    @ComponentScan({ "com.example.demo.*" })
    @Import({ SecurityConfig.class })
    @ImportResource("classpath:job_scheduler.xml")
    public class AppConfig extends WebMvcConfigurerAdapter {

        @Bean
        public InternalResourceViewResolver viewResolver() {
            InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
            viewResolver.setViewClass(JstlView.class);
            viewResolver.setPrefix("/WEB-INF/pages/");
            viewResolver.setSuffix(".jsp");
            return viewResolver;
        }

        @Override
        public void addInterceptors(InterceptorRegistry registry) {
            registry.addInterceptor(new SessionTimeoutInterceptor());
        }

        @Bean
        public MultipartResolver multipartResolver() {
            CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
            multipartResolver.setMaxUploadSize(10485760); // 10MB
            multipartResolver.setMaxUploadSizePerFile(1048576); // 1MB
            return multipartResolver;
        }

        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/resources/**").addResourceLocations("/resources/").setCachePeriod(31556926);
            registry.addResourceHandler("C:/demo/cust_image/*").addResourceLocations("C:/demo/cust_image/").setCachePeriod(31556926);
        }}

com.example.demo.config.WebMvcConfig

@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {

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

}

com.example.demo.web.config.core.SpringMvcInitializer

public class SpringMvcInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

@Override
protected Class<?>[] getRootConfigClasses() {
    return new Class[] { AppConfig.class };
}

@Override
protected Class<?>[] getServletConfigClasses() {
    return null;
}

@Override
protected String[] getServletMappings() {
    return new String[] { "/" };
}

@Override
public void onStartup(ServletContext servletContext) throws ServletException {
    super.onStartup(servletContext);
    servletContext.addListener(new SessionListener());
}}

com.example.demo.web.actions.ErrorController

@ControllerAdvice
@ComponentScan({ "com.example.demo.*" })
public class ErrorController {

    private static Logger logger = Logger.getLogger(ErrorController.class);

    @ResponseStatus(value=HttpStatus.NOT_FOUND)
    @ExceptionHandler(value=RuntimeException.class)
    public ModelAndView resourceNotFound(RuntimeException ex) {

        ModelAndView errorPage = new ModelAndView("error");
        String errorMsg = "";
        errorMsg = ex.getMessage();
        errorPage.addObject("errorMsg", errorMsg);

        return errorPage;
    }
}

com.example.demo.web.actions.MakerController

@Controller
@RequestMapping(value = "/maker")
public class MakerController {

}

demo \ src \ main \ webapp \ WEB-INF \ pages \ error.jsp

error.jsp не отображается на локальном хосте:8989 / demo / maker / invalidResource, помогите пожалуйста

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...