/** * Generate error pages for unhandled exceptions. */ @Bean public SimpleMappingExceptionResolver simpleMappingExceptionResolver() { ReconciliationExceptionResolver r = new ReconciliationExceptionResolver(); Properties mappings = new Properties(); mappings.setProperty("UnknownReconciliationServiceException", "404"); r.setExceptionMappings(mappings); r.setDefaultErrorView("500"); r.setDefaultStatusCode(500); r.setPreventResponseCaching(true); r.setWarnLogCategory("org.kew.rmf.reconciliation.error"); return r; }
/** * * * @throws Exception */ @Test public void testExceptionViewNameMapping() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); SimpleMappingExceptionResolver exceptionResolver = new SimpleMappingExceptionResolver(); Object handler = new Object(); Properties props = new Properties(); props.setProperty("java.lang.Exception", "genericErrorView"); props.setProperty("java.lang.NumberFormatException","numberFormatErrorView"); exceptionResolver.setExceptionMappings(props); ModelAndView mav = exceptionResolver.resolveException(request, response, handler, new Exception()); assertEquals("genericErrorView", mav.getViewName()); ModelAndView mav2 = exceptionResolver.resolveException(request, response, handler, new NumberFormatException()); assertEquals("numberFormatErrorView", mav2.getViewName()); }
@Test public void existingMultipartRequest() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do;abc=def"); request.addPreferredLocale(Locale.CANADA); request.addUserRole("role1"); MockHttpServletResponse response = new MockHttpServletResponse(); ComplexWebApplicationContext.MockMultipartResolver multipartResolver = (ComplexWebApplicationContext.MockMultipartResolver) complexDispatcherServlet.getWebApplicationContext() .getBean("multipartResolver"); MultipartHttpServletRequest multipartRequest = multipartResolver.resolveMultipart(request); complexDispatcherServlet.service(multipartRequest, response); multipartResolver.cleanupMultipart(multipartRequest); assertNull(request.getAttribute(SimpleMappingExceptionResolver.DEFAULT_EXCEPTION_ATTRIBUTE)); assertNotNull(request.getAttribute("cleanedUp")); }
@Test public void existingMultipartRequestButWrapped() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do;abc=def"); request.addPreferredLocale(Locale.CANADA); request.addUserRole("role1"); MockHttpServletResponse response = new MockHttpServletResponse(); ComplexWebApplicationContext.MockMultipartResolver multipartResolver = (ComplexWebApplicationContext.MockMultipartResolver) complexDispatcherServlet.getWebApplicationContext() .getBean("multipartResolver"); MultipartHttpServletRequest multipartRequest = multipartResolver.resolveMultipart(request); complexDispatcherServlet.service(new HttpServletRequestWrapper(multipartRequest), response); multipartResolver.cleanupMultipart(multipartRequest); assertNull(request.getAttribute(SimpleMappingExceptionResolver.DEFAULT_EXCEPTION_ATTRIBUTE)); assertNotNull(request.getAttribute("cleanedUp")); }
@Test public void multipartResolutionFailed() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do;abc=def"); request.addPreferredLocale(Locale.CANADA); request.addUserRole("role1"); request.setAttribute("fail", Boolean.TRUE); MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); assertTrue("forwarded to failed", "failed0.jsp".equals(response.getForwardedUrl())); assertEquals(200, response.getStatus()); assertTrue("correct exception", request.getAttribute( SimpleMappingExceptionResolver.DEFAULT_EXCEPTION_ATTRIBUTE) instanceof MaxUploadSizeExceededException); }
/** * {@inheritDoc} * * Error page is tried to be resolved at public/error, the exception attribute is set to {@literal exception}. */ @Override public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) { SimpleMappingExceptionResolver smer = new SimpleMappingExceptionResolver(); smer.setDefaultErrorView("public/error"); smer.setExceptionAttribute("exception"); exceptionResolvers.add(smer); }
@ConditionalOnMissingBean(HandlerExceptionResolver.class) public @Bean SimpleMappingExceptionResolver simpleMappingExceptionResolver() { SimpleMappingExceptionResolver smer = new SimpleMappingExceptionResolver(); smer.setDefaultErrorView("public/error"); smer.setExceptionAttribute("exception"); return smer; }
@Bean public SimpleMappingExceptionResolver simpleMappingExceptionResolver() { Properties mappings = new Properties(); mappings.put("OopsException", "exception/oops"); SimpleMappingExceptionResolver resolver = new SimpleMappingExceptionResolver(); resolver.setDefaultErrorView("exception/default"); resolver.setExceptionAttribute("exception"); resolver.setOrder(Integer.MAX_VALUE); resolver.setExceptionMappings(mappings); return resolver; }
/** * Resolves specific types of exceptions to corresponding logical view names * for error views. * * <p> * View name resolved using bean of type InternalResourceViewResolver * (declared in {@link MvcViewConfig}). */ @Override public void configureHandlerExceptionResolvers( List<HandlerExceptionResolver> exceptionResolvers) { SimpleMappingExceptionResolver exceptionResolver = new SimpleMappingExceptionResolver(); // results into 'WEB-INF/jsp/exception.jsp' exceptionResolver.setDefaultErrorView("exception"); // needed otherwise exceptions won't be logged anywhere exceptionResolver.setWarnLogCategory("warn"); exceptionResolvers.add(exceptionResolver); }
public void testMultipartResolutionFailed() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(getServletContext(), "GET", "/locale.do;abc=def"); request.addPreferredLocale(Locale.CANADA); request.addUserRole("role1"); request.setAttribute("fail", Boolean.TRUE); MockHttpServletResponse response = new MockHttpServletResponse(); complexDispatcherServlet.service(request, response); assertTrue("forwarded to failed", "failed0.jsp".equals(response.getForwardedUrl())); assertEquals(200, response.getStatus()); assertTrue("correct exception", request.getAttribute( SimpleMappingExceptionResolver.DEFAULT_EXCEPTION_ATTRIBUTE) instanceof MaxUploadSizeExceededException); }
/** * Route exceptions to defaultException.vm with a default status code of 500. */ public @Bean SimpleMappingExceptionResolver simpleMappingExceptionResolver () { final SimpleMappingExceptionResolver resolver = new SimpleMappingExceptionResolver (); resolver.setDefaultErrorView ("defaultException"); resolver.setDefaultStatusCode (500); return resolver; }
@Test public void testErrorStatusViewNameMapping() { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); SimpleMappingExceptionResolver exceptionResolver = new SimpleMappingExceptionResolver(); Object handler = new Object(); exceptionResolver.setDefaultErrorView("genericErrorView"); exceptionResolver.setDefaultStatusCode(HttpServletResponse.SC_BAD_REQUEST); ModelAndView mav = exceptionResolver.resolveException(request, response, handler, new Exception()); assertEquals(HttpServletResponse.SC_BAD_REQUEST, response.getStatus()); }
@Test public void testDefaultErrorView() { // 설정 값 테스트 ModelAndView mav = exceptionResolver.resolveException(request, response, handler1, exception); System.out.println(mav.getViewName()); assertEquals("common/error", mav.getViewName()); // 설정후 테스트 exceptionResolver.setDefaultErrorView("common-error"); mav = exceptionResolver.resolveException(request, response, handler1, exception); assertEquals("common-error", mav.getViewName()); assertEquals(exception, mav.getModel().get(SimpleMappingExceptionResolver.DEFAULT_EXCEPTION_ATTRIBUTE)); }
@Test public void testNullExceptionAttribute() { // 디볼드 재수정후 테스트 exceptionResolver.setDefaultErrorView("common/error"); exceptionResolver.setExceptionAttribute(null); ModelAndView mav = exceptionResolver.resolveException(request, response, handler1, exception); assertEquals("common/error", mav.getViewName()); assertNull(mav.getModel().get(SimpleMappingExceptionResolver.DEFAULT_EXCEPTION_ATTRIBUTE)); }
@Override public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) { exceptionResolvers.add(new SimpleMappingExceptionResolver()); }