Java 类org.springframework.web.servlet.mvc.method.annotation.ExceptionHandlerExceptionResolver 实例源码

项目:spring4-understanding    文件:WebMvcConfigurationSupport.java   
/**
 * A method available to subclasses for adding default {@link HandlerExceptionResolver}s.
 * <p>Adds the following exception resolvers:
 * <ul>
 * <li>{@link ExceptionHandlerExceptionResolver}
 * for handling exceptions through @{@link ExceptionHandler} methods.
 * <li>{@link ResponseStatusExceptionResolver}
 * for exceptions annotated with @{@link ResponseStatus}.
 * <li>{@link DefaultHandlerExceptionResolver}
 * for resolving known Spring exception types
 * </ul>
 */
protected final void addDefaultHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
    ExceptionHandlerExceptionResolver exceptionHandlerExceptionResolver = new ExceptionHandlerExceptionResolver();
    exceptionHandlerExceptionResolver.setContentNegotiationManager(mvcContentNegotiationManager());
    exceptionHandlerExceptionResolver.setMessageConverters(getMessageConverters());
    if (jackson2Present) {
        List<ResponseBodyAdvice<?>> interceptors = new ArrayList<ResponseBodyAdvice<?>>();
        interceptors.add(new JsonViewResponseBodyAdvice());
        exceptionHandlerExceptionResolver.setResponseBodyAdvice(interceptors);
    }
    exceptionHandlerExceptionResolver.setApplicationContext(this.applicationContext);
    exceptionHandlerExceptionResolver.afterPropertiesSet();
    exceptionResolvers.add(exceptionHandlerExceptionResolver);

    ResponseStatusExceptionResolver responseStatusExceptionResolver = new ResponseStatusExceptionResolver();
    responseStatusExceptionResolver.setMessageSource(this.applicationContext);
    exceptionResolvers.add(responseStatusExceptionResolver);

    exceptionResolvers.add(new DefaultHandlerExceptionResolver());
}
项目:spring4-understanding    文件:DelegatingWebMvcConfigurationTests.java   
@Test
public void handlerExceptionResolver() throws Exception {

    delegatingConfig.setConfigurers(Arrays.asList(webMvcConfigurer));
    delegatingConfig.handlerExceptionResolver();

    verify(webMvcConfigurer).configureMessageConverters(converters.capture());
    verify(webMvcConfigurer).configureContentNegotiation(contentNegotiationConfigurer.capture());
    verify(webMvcConfigurer).configureHandlerExceptionResolvers(exceptionResolvers.capture());

    assertEquals(3, exceptionResolvers.getValue().size());
    assertTrue(exceptionResolvers.getValue().get(0) instanceof ExceptionHandlerExceptionResolver);
    assertTrue(exceptionResolvers.getValue().get(1) instanceof ResponseStatusExceptionResolver);
    assertTrue(exceptionResolvers.getValue().get(2) instanceof DefaultHandlerExceptionResolver);
    assertTrue(converters.getValue().size() > 0);
}
项目:spring-json-sms-gateway    文件:GatewayControllerTests.java   
@Before
public void setup() {
    MockitoAnnotations.initMocks(this);

    final ExceptionHandlerExceptionResolver exceptionHandlerExceptionResolver = new ExceptionHandlerExceptionResolver();
    final StaticApplicationContext applicationContext = new StaticApplicationContext();
    applicationContext.registerBeanDefinition("advice", new RootBeanDefinition(GlobalErrorHandler.class, null, null));
    exceptionHandlerExceptionResolver.setApplicationContext(applicationContext);
    exceptionHandlerExceptionResolver.afterPropertiesSet();

    mockMvc = MockMvcBuilders.standaloneSetup(gatewayController).setHandlerExceptionResolvers(exceptionHandlerExceptionResolver).build();


    JSON_SMS json_sms = new JSON_SMS();
    json_sms.setMsisdn("34646974525");
    json_sms.setSender("sender");
    json_sms.setText("message test");
    requestJSON.addSMS(json_sms);
    requestJSON.addSMS(json_sms);
}
项目:class-guard    文件:WebMvcConfigurationSupportTests.java   
@Test
public void handlerExceptionResolver() throws Exception {
    HandlerExceptionResolverComposite compositeResolver =
        (HandlerExceptionResolverComposite) mvcConfiguration.handlerExceptionResolver();

    assertEquals(0, compositeResolver.getOrder());

    List<HandlerExceptionResolver> expectedResolvers = compositeResolver.getExceptionResolvers();

    assertEquals(ExceptionHandlerExceptionResolver.class, expectedResolvers.get(0).getClass());
    assertEquals(ResponseStatusExceptionResolver.class, expectedResolvers.get(1).getClass());
    assertEquals(DefaultHandlerExceptionResolver.class, expectedResolvers.get(2).getClass());

    ExceptionHandlerExceptionResolver eher = (ExceptionHandlerExceptionResolver) expectedResolvers.get(0);
    assertNotNull(eher.getApplicationContext());
}
项目:class-guard    文件:DelegatingWebMvcConfigurationTests.java   
@Test
public void handlerExceptionResolver() throws Exception {

    delegatingConfig.setConfigurers(Arrays.asList(webMvcConfigurer));
    delegatingConfig.handlerExceptionResolver();

    verify(webMvcConfigurer).configureMessageConverters(converters.capture());
    verify(webMvcConfigurer).configureContentNegotiation(contentNegotiationConfigurer.capture());
    verify(webMvcConfigurer).configureHandlerExceptionResolvers(exceptionResolvers.capture());

    assertEquals(3, exceptionResolvers.getValue().size());
    assertTrue(exceptionResolvers.getValue().get(0) instanceof ExceptionHandlerExceptionResolver);
    assertTrue(exceptionResolvers.getValue().get(1) instanceof ResponseStatusExceptionResolver);
    assertTrue(exceptionResolvers.getValue().get(2) instanceof DefaultHandlerExceptionResolver);
    assertTrue(converters.getValue().size() > 0);
}
项目:nixmash-blog    文件:SolrProductControllerTests.java   
@Before
public void setUp() throws GeoLocationException {

    final ExceptionHandlerExceptionResolver exceptionResolver = new ExceptionHandlerExceptionResolver();
    final StaticApplicationContext applicationContext = new StaticApplicationContext();
    applicationContext.registerBeanDefinition("solrController",
            new RootBeanDefinition(SolrController.class, null, null));
    exceptionResolver.setApplicationContext(applicationContext);
    exceptionResolver.afterPropertiesSet();

    mockProductService = mock(ProductService.class);

    String badLocation = "35.453487-97.5184727";
    when(mockProductService.getProductsByLocation(badLocation)).thenThrow(new GeoLocationException());

    solrController = new SolrController(mockProductService);
    mockMvc = MockMvcBuilders.standaloneSetup(solrController)
            .setCustomArgumentResolvers(new PageableHandlerMethodArgumentResolver())
            .setHandlerExceptionResolvers(exceptionResolver).build();

    product = createProduct(1000);
    when(mockProductService.getProduct(PRODUCT_ID)).thenReturn(product);

    allProducts = createProductList(10);
    when(mockProductService.getProducts()).thenReturn(allProducts);

}
项目:spring4-understanding    文件:WebMvcConfigurationSupportTests.java   
@Test
@SuppressWarnings("unchecked")
public void handlerExceptionResolver() throws Exception {
    ApplicationContext context = initContext(WebConfig.class);
    HandlerExceptionResolverComposite compositeResolver =
            context.getBean("handlerExceptionResolver", HandlerExceptionResolverComposite.class);

    assertEquals(0, compositeResolver.getOrder());
    List<HandlerExceptionResolver> expectedResolvers = compositeResolver.getExceptionResolvers();

    assertEquals(ExceptionHandlerExceptionResolver.class, expectedResolvers.get(0).getClass());
    assertEquals(ResponseStatusExceptionResolver.class, expectedResolvers.get(1).getClass());
    assertEquals(DefaultHandlerExceptionResolver.class, expectedResolvers.get(2).getClass());

    ExceptionHandlerExceptionResolver eher = (ExceptionHandlerExceptionResolver) expectedResolvers.get(0);
    assertNotNull(eher.getApplicationContext());

    DirectFieldAccessor fieldAccessor = new DirectFieldAccessor(eher);
    List<Object> interceptors = (List<Object>) fieldAccessor.getPropertyValue("responseBodyAdvice");
    assertEquals(1, interceptors.size());
    assertEquals(JsonViewResponseBodyAdvice.class, interceptors.get(0).getClass());

    LocaleContextHolder.setLocale(Locale.ENGLISH);
    try {
        ResponseStatusExceptionResolver rser = (ResponseStatusExceptionResolver) expectedResolvers.get(1);
        MockHttpServletRequest request = new MockHttpServletRequest("GET", "/");
        MockHttpServletResponse response = new MockHttpServletResponse();
        rser.resolveException(request, response, context.getBean(TestController.class), new UserAlreadyExistsException());
        assertEquals("User already exists!", response.getErrorMessage());
    }
    finally {
        LocaleContextHolder.resetLocaleContext();
    }
}
项目:spring4-understanding    文件:AnnotationDrivenBeanDefinitionParserTests.java   
@Test
public void testMessageConverters() {
    loadBeanDefinitions("mvc-config-message-converters.xml");
    verifyMessageConverters(appContext.getBean(RequestMappingHandlerAdapter.class), true);
    verifyMessageConverters(appContext.getBean(ExceptionHandlerExceptionResolver.class), true);
    verifyRequestResponseBodyAdvice(appContext.getBean(RequestMappingHandlerAdapter.class));
    verifyResponseBodyAdvice(appContext.getBean(ExceptionHandlerExceptionResolver.class));
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:WebMvcAutoConfiguration.java   
@Override
protected ExceptionHandlerExceptionResolver createExceptionHandlerExceptionResolver() {
    if (this.mvcRegistrations != null && this.mvcRegistrations
            .getExceptionHandlerExceptionResolver() != null) {
        return this.mvcRegistrations.getExceptionHandlerExceptionResolver();
    }
    return super.createExceptionHandlerExceptionResolver();
}
项目:hydra-java    文件:XhtmlResourceMessageConverterTest.java   
@Override
public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
    final ExceptionHandlerExceptionResolver resolver = new ExceptionHandlerExceptionResolver();
    resolver.setWarnLogCategory(resolver.getClass()
            .getName());
    exceptionResolvers.add(resolver);
}
项目:hydra-java    文件:SirenMessageConverterTest.java   
@Override
public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
    final ExceptionHandlerExceptionResolver resolver = new ExceptionHandlerExceptionResolver();
    resolver.setWarnLogCategory(resolver.getClass()
            .getName());
    exceptionResolvers.add(resolver);
}
项目:hydra-java    文件:HydraMessageConverterTest.java   
@Override
public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
    final ExceptionHandlerExceptionResolver resolver = new ExceptionHandlerExceptionResolver();
    resolver.setWarnLogCategory(resolver.getClass()
            .getName());
    exceptionResolvers.add(resolver);
}
项目:hydra-java    文件:Config.java   
@Override
public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
    final ExceptionHandlerExceptionResolver resolver = new ExceptionHandlerExceptionResolver();
    resolver.setWarnLogCategory(resolver.getClass()
            .getName());
    exceptionResolvers.add(resolver);
}
项目:mybus    文件:WebApplicationConfig.java   
@Bean
public HandlerExceptionResolverComposite getHandlerExceptionResolverComposite() {
    HandlerExceptionResolverComposite result = new HandlerExceptionResolverComposite();
    List<HandlerExceptionResolver> resolverList = new ArrayList<>();
    resolverList.add(new ExceptionHandlerExceptionResolver());
    resolverList.add(new ResponseStatusExceptionResolver());
    resolverList.add(new Error500Resolver());
    resolverList.add(new DefaultHandlerExceptionResolver());
    result.setExceptionResolvers(resolverList);
    return result;
}
项目:flash-messages    文件:FlashMessagesConfigurationSupport.java   
/**
 * adds a FlashMessagesMethodArgumentResolver to handlerExceptionResolver's argument resolvers
 */
@PostConstruct
private void configureMessagesExceptionArgumentResolvers() {
    this.handlerExceptionResolver = this.applicationContext.getBean("handlerExceptionResolver", HandlerExceptionResolver.class);

    for (final HandlerExceptionResolver resolver : ((HandlerExceptionResolverComposite) this.handlerExceptionResolver).getExceptionResolvers()) {
        if (resolver instanceof ExceptionHandlerExceptionResolver) {
            configureCustomHandlerMethodArgumentResolver((ExceptionHandlerExceptionResolver) resolver);
        }
    }
}
项目:flash-messages    文件:FlashMessagesConfigurationSupport.java   
private void configureCustomHandlerMethodArgumentResolver(final ExceptionHandlerExceptionResolver exceptionHandlerExceptionResolver) {
    final List<HandlerMethodArgumentResolver> resolvers = new ArrayList<HandlerMethodArgumentResolver>();
    resolvers.addAll(exceptionHandlerExceptionResolver.getArgumentResolvers().getResolvers());
    resolvers.add(flashMessagesMethodArgumentResolver());

    exceptionHandlerExceptionResolver.setArgumentResolvers(resolvers);
    exceptionHandlerExceptionResolver.setApplicationContext(this.applicationContext);
    exceptionHandlerExceptionResolver.afterPropertiesSet();
}
项目:flash-messages    文件:FlashMessagesConfigurationSupportSpecs.java   
@Test
public void it_should_add_exception_argument_resolver() {
    final HandlerExceptionResolver handlerExceptionResolver = this.context.getBean(HandlerExceptionResolver.class);

    assertThat(handlerExceptionResolver).isInstanceOf(HandlerExceptionResolverComposite.class);
    for (final HandlerExceptionResolver resolver : ((HandlerExceptionResolverComposite) handlerExceptionResolver).getExceptionResolvers()) {
        if (resolver instanceof ExceptionHandlerExceptionResolver) {
            assertThat(((ExceptionHandlerExceptionResolver) resolver).getArgumentResolvers().getResolvers().get(0))
                .isInstanceOf(FlashMessagesMethodArgumentResolver.class);
        }
    }
}
项目:parkandrideAPI    文件:Application.java   
@Bean
public ExceptionHandlerExceptionResolver exceptionHandlerExceptionResolver() {
    ExceptionHandlerExceptionResolver resolver = new ExceptionHandlerExceptionResolver();
    resolver.setWarnLogCategory("parkandride");
    resolver.setMessageConverters(messageConverters.getConverters());
    return resolver;
}
项目:acceptance    文件:VCSRepositoryCRUDControllerTest.java   
private ExceptionHandlerExceptionResolver createExceptionResolver() {
  ExceptionHandlerExceptionResolver exceptionResolver = new ExceptionHandlerExceptionResolver() {
    protected ServletInvocableHandlerMethod getExceptionHandlerMethod(HandlerMethod handlerMethod, Exception exception) {
      Method method = new ExceptionHandlerMethodResolver(JsonErrorHandler.class).resolveMethod(exception);
      return new ServletInvocableHandlerMethod(jsonErrorHandler, method);
    }
  };
  List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
  messageConverters.add(new FormHttpMessageConverter());
  messageConverters.add(new StringHttpMessageConverter());
  messageConverters.add(new MappingJackson2HttpMessageConverter());
  exceptionResolver.setMessageConverters(messageConverters);
  exceptionResolver.afterPropertiesSet();
  return exceptionResolver;
}
项目:acceptance    文件:CredentialCRUDControllerTest.java   
private ExceptionHandlerExceptionResolver createExceptionResolver() {
  ExceptionHandlerExceptionResolver exceptionResolver = new ExceptionHandlerExceptionResolver() {
    protected ServletInvocableHandlerMethod getExceptionHandlerMethod(HandlerMethod handlerMethod, Exception exception) {
      Method method = new ExceptionHandlerMethodResolver(JsonErrorHandler.class).resolveMethod(exception);
      return new ServletInvocableHandlerMethod(jsonErrorHandler, method);
    }
  };
  List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
  messageConverters.add(new FormHttpMessageConverter());
  messageConverters.add(new StringHttpMessageConverter());
  messageConverters.add(new MappingJackson2HttpMessageConverter());
  exceptionResolver.setMessageConverters(messageConverters);
  exceptionResolver.afterPropertiesSet();
  return exceptionResolver;
}
项目:spring-boot-mybatis-demo    文件:WebInitializer.java   
@Override
public ExceptionHandlerExceptionResolver getExceptionHandlerExceptionResolver() {
    return null;
}
项目:spring4-understanding    文件:AnnotationDrivenBeanDefinitionParserTests.java   
@Test
public void testMessageConvertersWithoutDefaultRegistrations() {
    loadBeanDefinitions("mvc-config-message-converters-defaults-off.xml");
    verifyMessageConverters(appContext.getBean(RequestMappingHandlerAdapter.class), false);
    verifyMessageConverters(appContext.getBean(ExceptionHandlerExceptionResolver.class), false);
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:WebMvcRegistrationsAdapter.java   
@Override
public ExceptionHandlerExceptionResolver getExceptionHandlerExceptionResolver() {
    return null;
}
项目:moserp    文件:RestConfiguration.java   
@Override
public void configureExceptionHandlerExceptionResolver(ExceptionHandlerExceptionResolver exceptionResolver) {
    exceptionResolver.setMessageConverters(HttpMessageConverterUtils.getDefaultHttpMessageConverters());
}
项目:class-guard    文件:AnnotationDrivenBeanDefinitionParserTests.java   
@Test
public void testMessageConverters() {
    loadBeanDefinitions("mvc-config-message-converters.xml");
    verifyMessageConverters(appContext.getBean(RequestMappingHandlerAdapter.class), true);
    verifyMessageConverters(appContext.getBean(ExceptionHandlerExceptionResolver.class), true);
}
项目:class-guard    文件:AnnotationDrivenBeanDefinitionParserTests.java   
@Test
public void testMessageConvertersWithoutDefaultRegistrations() {
    loadBeanDefinitions("mvc-config-message-converters-defaults-off.xml");
    verifyMessageConverters(appContext.getBean(RequestMappingHandlerAdapter.class), false);
    verifyMessageConverters(appContext.getBean(ExceptionHandlerExceptionResolver.class), false);
}
项目:class-guard    文件:WebMvcConfigurationSupport.java   
/**
 * A method available to subclasses for adding default {@link HandlerExceptionResolver}s.
 * <p>Adds the following exception resolvers:
 * <ul>
 *  <li>{@link ExceptionHandlerExceptionResolver}
 *  for handling exceptions through @{@link ExceptionHandler} methods.
 *  <li>{@link ResponseStatusExceptionResolver}
 *  for exceptions annotated with @{@link ResponseStatus}.
 *  <li>{@link DefaultHandlerExceptionResolver}
 *  for resolving known Spring exception types
 * </ul>
 */
protected final void addDefaultHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
    ExceptionHandlerExceptionResolver exceptionHandlerExceptionResolver = new ExceptionHandlerExceptionResolver();
    exceptionHandlerExceptionResolver.setApplicationContext(this.applicationContext);
    exceptionHandlerExceptionResolver.setContentNegotiationManager(mvcContentNegotiationManager());
    exceptionHandlerExceptionResolver.setMessageConverters(getMessageConverters());
    exceptionHandlerExceptionResolver.afterPropertiesSet();

    exceptionResolvers.add(exceptionHandlerExceptionResolver);
    exceptionResolvers.add(new ResponseStatusExceptionResolver());
    exceptionResolvers.add(new DefaultHandlerExceptionResolver());
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot    文件:WebMvcRegistrations.java   
/**
 * Return the custom {@link ExceptionHandlerExceptionResolver} that should be used and
 * processed by the MVC configuration.
 * @return the custom {@link ExceptionHandlerExceptionResolver} instance
 */
ExceptionHandlerExceptionResolver getExceptionHandlerExceptionResolver();