원하는 방식으로 작업을 얻을 수없고, 나는 예외 매핑이 방법으로 추가하려고 :나는 아마도 SimpleMappingExceptionResolver가 나는 봄 3 사용하고
코스 JSP (들)의<bean
class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
<property name="exceptionMappings">
<map>
<entry key="it.jsoftware.jacciseweb.controllers.AcciseAuthException" value="/jsp/errorUserPage.jsp" />
</map>
</property>
</bean>
은 WEB-INF에 만에되지 않습니다 루트의 폴더는 jsp
입니다. 내가 얻는 것은 web.xml에서 설정 한 404 처리를위한 사용자 정의 페이지입니다. 뭐가 문제 야?
[08 mar 2011 15:20:11,451 CET] [DEBUG] [HandlerMethodInvoker] [invokeHandlerMethod:173] - Invoking request handler method: public org.springframework.web.servlet.ModelAndView it.jsoftware.jacciseweb.controllers.MainController.prodottiList(int,java.lang.String,boolean,java.lang.Integer,javax.servlet.http.HttpSession) throws java.lang.Exception
[08 mar 2011 15:20:11,452 CET] [DEBUG] [SimpleMappingExceptionResolver] [resolveException:132] - Resolving exception from handler [[email protected]]: it.jsoftware.jacciseweb.controllers.AcciseAuthException
[08 mar 2011 15:20:11,454 CET] [DEBUG] [SimpleMappingExceptionResolver] [findMatchingViewName:202] - Resolving to view '/jsp/errorUserPage.jsp' for exception of type [it.jsoftware.jacciseweb.controllers.AcciseAuthException], based on exception mapping [it.jsoftware.jacciseweb.controllers.AcciseAuthException]
[08 mar 2011 15:20:11,454 CET] [DEBUG] [SimpleMappingExceptionResolver] [getModelAndView:294] - Exposing Exception as model attribute 'exception'
[08 mar 2011 15:20:11,458 CET] [DEBUG] [DispatcherServlet] [processHandlerException:1001] - Handler execution resulted in exception - forwarding to resolved error view: ModelAndView: reference to view with name '/jsp/errorUserPage.jsp'; model is {exception=it.jsoftware.jacciseweb.controllers.AcciseAuthException}
it.jsoftware.jacciseweb.controllers.AcciseAuthException
at it.jsoftware.jacciseweb.controllers.ApplicationUserStatus.checkIfUserPrivilegeBelowOrEqual(ApplicationUserStatus.java:162)
at it.jsoftware.jacciseweb.controllers.MainController.prodottiList(MainController.java:401)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:619)
[08 mar 2011 15:20:11,464 CET] [DEBUG] [DefaultListableBeanFactory] [invokeInitMethods:1461] - Invoking afterPropertiesSet() on bean with name '/jsp/errorUserPage.jsp'
[08 mar 2011 15:20:11,465 CET] [DEBUG] [DefaultListableBeanFactory] [doGetBean:242] - Returning cached instance of singleton bean 'org.springframework.transaction.config.internalTransactionAdvisor'
[08 mar 2011 15:20:11,465 CET] [DEBUG] [DispatcherServlet] [render:1045] - Rendering view [org.springframework.web.servlet.view.JstlView: name '/jsp/errorUserPage.jsp'; URL [/jsp/errorUserPage.jsp]] in DispatcherServlet with name 'springDispatcher'
[08 mar 2011 15:20:11,466 CET] [DEBUG] [JstlView] [exposeModelAsRequestAttributes:328] - Added model object 'exception' of type [it.jsoftware.jacciseweb.controllers.AcciseAuthException] to request in view with name '/jsp/errorUserPage.jsp'
[08 mar 2011 15:20:11,466 CET] [DEBUG] [JstlView] [renderMergedOutputModel:236] - Forwarding to resource [/jsp/errorUserPage.jsp] in InternalResourceView '/jsp/errorUserPage.jsp'
[08 mar 2011 15:20:11,467 CET] [DEBUG] [OpenSessionInViewInterceptor] [afterCompletion:212] - Closing single Hibernate Session in OpenSessionInViewInterceptor
[08 mar 2011 15:20:11,468 CET] [DEBUG] [SessionFactoryUtils] [closeSession:789] - Closing Hibernate Session
[08 mar 2011 15:20:11,468 CET] [DEBUG] [DispatcherServlet] [processRequest:674] - Successfully completed request
UPDATE
내가 나중에이 질문을 볼 수있는 사람이 추가 해요 :
여기에 사용할 수 DEBUG 봄 로그입니다. 이 구성은 괜찮습니다. JSP가 잘못되었습니다. 어쨌든이 문제를 해결할 더 좋은 방법을 제안하는 대답에 대해 봄 3입니다.
대단히 감사합니다. 주석을 사용하여 예외를 처리 할 수 있다는 것을 알지 못했습니다 ... 아마도 Spring 문서를 더 신중하게 읽어야합니다. 어쨌든, 그냥 제 느낌입니까, 아니면 Spring 3 문서가 빨습니까? 나는 그들이 많은 세부 사항이나 예제를주지 않는다는 것을 의미한다. 나는 왜 어떤 것들이 효과가 없는지 이해하기 위해 몇 시간 동안 구글을 사용해야한다. ... – gotch4
그리고, 아주 좋은 기사. – gotch4
예 그들의 문서는 몇 가지 세부 사항을 생략합니다. API는 워드 프로세서, 그리고 그들의 샘플 애플 리케이션은 일부 격차를 채우지 만, 구글과 스택 오버 플로우는 필요한 도구입니다 :) – flurdy