2009-09-30 5 views
0

J'ai mis en place un bean avec un identifiant de "exceptionResolver" en fait une instance de org.springframework.web.servlet.handler.SimpleMappingExceptionResolver. Ensuite, je définis deux propriétés, "defaultErrorView" et "exceptionMappings". Si je comprends bien, cela devrait intercepter toutes les exceptions lancées dans mon application Web et transférer vers la vue que j'ai spécifiée.Résolveur d'exceptions et expéditeur non redirigé

Cela ne se produit pas, tout ce que je reçois est la page d'erreur standard tomcat 500 avec trace de la pile. Qu'est-ce que je fais mal? De plus, j'utilise le ressort 2.5.5 et tous mes contrôleurs/dao/etc ... sont définis en utilisant des annotations de printemps.

Voici une flèche de ma trace de pile.

[org.springframework.orm.hibernate3.SessionFactoryUtils] - <Closing Hibernate Session> 
[org.hibernate.jdbc.ConnectionManager] - <releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]> 
[org.hibernate.jdbc.ConnectionManager] - <transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!> 
[org.springframework.web.servlet.handler.SimpleMappingExceptionResolver] - <Resolving exception from handler [[email protected]]: java.lang.NumberFormatException: null> 
[org.springframework.web.servlet.handler.SimpleMappingExceptionResolver] - <Resolving to view 'errors/applicationErrorPg2' for exception of type [java.lang.NumberFormatException], based on exception mapping [java.lang.NumberFormatException]> 
[org.springframework.web.servlet.handler.SimpleMappingExceptionResolver] - <Exposing Exception as model attribute 'exception'> 
[org.springframework.web.servlet.DispatcherServlet] - <Handler execution resulted in exception - forwarding to resolved error view: ModelAndView: reference to view with name 'errors/applicationErrorPg2'; model is {exception=java.lang.NumberFormatException: null}> 
java.lang.NumberFormatException: null 
    at java.lang.Long.parseLong(Long.java:372) 
    at java.lang.Long.parseLong(Long.java:461) 
    at controller.EditController.createEditDto(EditController.java:169) 
... 
[org.springframework.web.servlet.DispatcherServlet] - <Rendering view [org.springframework.web.servlet.view.JstlView: name 'errors/applicationErrorPg2'; URL [/WEB-INF/jsps/errors/applicationErrorPg2.jsp]] in DispatcherServlet with name 'apps'> 
[org.springframework.web.servlet.view.JstlView] - <Rendering view with name 'errors/applicationErrorPg2' with model {exception=java.lang.NumberFormatException: null} and static attributes {}> 
[org.springframework.web.servlet.view.JstlView] - <Added model object 'exception' of type [java.lang.NumberFormatException] to request in view with name 'errors/applicationErrorPg2'> 
[org.springframework.web.servlet.view.JstlView] - <Forwarding to resource [/WEB-INF/jsps/errors/applicationErrorPg2.jsp] in InternalResourceView 'errors/applicationErrorPg2'> 
[org.springframework.web.servlet.DispatcherServlet] - <Cleared thread-bound request context: [email protected]14f9> 
[org.springframework.web.servlet.DispatcherServlet] - <Successfully completed request> 
[org.springframework.web.context.support.XmlWebApplicationContext] - <Publishing event in context [o[email protected]53d4bf]: ServletRequestHandledEvent: url=[/app/edit.do]; client=[127.0.0.1]; method=[GET]; servlet=[apps]; session=[A459510CAB03A4868344995A602CFF27]; user=[UPDATE]; time=[94ms]; status=[OK]> 
[org.springframework.web.context.support.XmlWebApplicationContext] - <Publishing event in context [o[email protected]12489c0]: ServletRequestHandledEvent: url=[/app/edit.do]; client=[127.0.0.1]; method=[GET]; servlet=[apps]; session=[A459510CAB03A4868344995A602CFF27]; user=[UPDATE]; time=[94ms]; status=[OK]> 
[org.springframework.security.ui.ExceptionTranslationFilter] - <Chain processed normally> 
[org.springframework.security.context.HttpSessionContextIntegrationFilter] - <SecurityContextHolder now cleared, as request processing completed> 
+0

Qu'est-ce que vous obtenez dans le navigateur? une page blanche? une pile de pile? – rodrigoap

+2

Spring 2.5.5 était plutôt bogué. Utilisez 2.5.6, c'est solide comme le roc. – skaffman

Répondre

0

Le problème semble être avec Spring version 2.5.5. J'ai changé ma dépendance en 2.5.1 et 2.5.6.sec01 (séparément) et le transfert a fonctionné comme prévu.

0

Bien que ce ne peut pas être la réponse à votre problème, je viens de découvrir que la plupart des documents et des exemples se rapportent en ligne à l'aide

org.springframework.web.servlet.handler.SimpleMappingExceptionResolver

mais si vous êtes en cours d'exécution dans un environnement de portlet vous devez utiliser

org.springframework.web.portlet.handler.SimpleMappingExceptionResolver

Espérons que quelqu'un va sauver quelques heures de tête-éraflure.

Questions connexes