responseStatusResolver.setMessageSource(this.applicationContext); exceptionResolvers.add(responseStatusResolver);
responseStatusResolver.setMessageSource(this.applicationContext); exceptionResolvers.add(responseStatusResolver);
@Test public void statusCodeAndReasonMessage() { Locale locale = Locale.CHINESE; LocaleContextHolder.setLocale(locale); try { StaticMessageSource messageSource = new StaticMessageSource(); messageSource.addMessage("gone.reason", locale, "Gone reason message"); exceptionResolver.setMessageSource(messageSource); StatusCodeAndReasonMessageException ex = new StatusCodeAndReasonMessageException(); exceptionResolver.resolveException(request, response, null, ex); assertEquals("Invalid status reason", "Gone reason message", response.getErrorMessage()); } finally { LocaleContextHolder.resetLocaleContext(); } }
/** * @param resolvers exceptionResolvers * @deprecated see: {@link org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport * #addDefaultHandlerExceptionResolvers(List) addDefaultHandlerExceptionResolvers} */ @Deprecated protected final void addDefaultHandlerExceptionResolvers( // final List<HandlerExceptionResolver> resolvers // ) { final List<ResponseBodyAdvice<?>> interceptors = newArrayList(); if (getJackson2Present()) { interceptors.add(new JsonViewResponseBodyAdvice()); } final ExceptionHandlerExceptionResolver handlerExceptionResolver = new ExceptionHandlerExceptionResolver(); handlerExceptionResolver.setMessageConverters(this.defaultHttpEntityMethodProcessor.getMessageConverters()); handlerExceptionResolver.setResponseBodyAdvice(interceptors); handlerExceptionResolver.setApplicationContext(this.applicationContext); handlerExceptionResolver.afterPropertiesSet(); final ResponseStatusExceptionResolver responseStatusExceptionResolver = new ResponseStatusExceptionResolver(); responseStatusExceptionResolver.setMessageSource(this.applicationContext); resolvers.add(handlerExceptionResolver); // resolvers add responseStatusExceptionResolver ? // resolvers add new DefaultHandlerExceptionResolver ? }
/** * @param resolvers exceptionResolvers * @deprecated see: {@link org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport * #addDefaultHandlerExceptionResolvers(List) addDefaultHandlerExceptionResolvers} */ @Deprecated protected final void addDefaultHandlerExceptionResolvers( // final List<HandlerExceptionResolver> resolvers // ) { final List<ResponseBodyAdvice<?>> interceptors = newArrayList(); if (getJackson2Present()) { interceptors.add(new JsonViewResponseBodyAdvice()); } final ExceptionHandlerExceptionResolver handlerExceptionResolver = new ExceptionHandlerExceptionResolver(); handlerExceptionResolver.setMessageConverters(this.defaultHttpEntityMethodProcessor.getMessageConverters()); handlerExceptionResolver.setResponseBodyAdvice(interceptors); handlerExceptionResolver.setApplicationContext(this.applicationContext); handlerExceptionResolver.afterPropertiesSet(); final ResponseStatusExceptionResolver responseStatusExceptionResolver = new ResponseStatusExceptionResolver(); responseStatusExceptionResolver.setMessageSource(this.applicationContext); resolvers.add(handlerExceptionResolver); // resolvers add responseStatusExceptionResolver ? // resolvers add new DefaultHandlerExceptionResolver ? }
/** * A method available to subclasses for adding default * {@link HandlerExceptionResolver HandlerExceptionResolvers}. * <p>Adds the following exception resolvers: * <ul> * <li>{@link ExceptionHandlerExceptionResolver} for handling exceptions through * {@link org.springframework.web.bind.annotation.ExceptionHandler} methods. * <li>{@link ResponseStatusExceptionResolver} for exceptions annotated with * {@link org.springframework.web.bind.annotation.ResponseStatus}. * <li>{@link DefaultHandlerExceptionResolver} for resolving known Spring exception types * </ul> */ protected final void addDefaultHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) { ExceptionHandlerExceptionResolver exceptionHandlerResolver = createExceptionHandlerExceptionResolver(); exceptionHandlerResolver.setContentNegotiationManager(mvcContentNegotiationManager()); exceptionHandlerResolver.setMessageConverters(getMessageConverters()); exceptionHandlerResolver.setCustomArgumentResolvers(getArgumentResolvers()); exceptionHandlerResolver.setCustomReturnValueHandlers(getReturnValueHandlers()); if (jackson2Present) { exceptionHandlerResolver.setResponseBodyAdvice( Collections.<ResponseBodyAdvice<?>>singletonList(new JsonViewResponseBodyAdvice())); } exceptionHandlerResolver.setApplicationContext(this.applicationContext); exceptionHandlerResolver.afterPropertiesSet(); exceptionResolvers.add(exceptionHandlerResolver); ResponseStatusExceptionResolver responseStatusResolver = new ResponseStatusExceptionResolver(); responseStatusResolver.setMessageSource(this.applicationContext); exceptionResolvers.add(responseStatusResolver); exceptionResolvers.add(new DefaultHandlerExceptionResolver()); }