IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Spring Java Discussion :

Gestion des exceptions dans applications Spring Hibernate Struts


Sujet :

Spring Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 144
    Points : 95
    Points
    95
    Par défaut Gestion des exceptions dans applications Spring Hibernate Struts
    Bonjour,

    j'ai une architecture typique à savoir :
    - Hibernate 3
    - Spring 2.5
    - Struts2

    J'utilise un HibernateTemplate, et des proxy pour mes services pour pouvoir utiliser JTA, car en fait j'ai 2 datasources, qui me permet d'etre sur que tout sera rollbacké si un probleme se passe sur l'un des 2 datasources.

    donc mon problème est tout simple, si une exception est levée au niveau des dao :
    - JTA doit rollbacké toutes la transaction (ca a priori c'est deja la cas)
    - mais surtout je rediriger l'utilisateur vers une page d'erreur

    Donc a quel niveau je dois catché une exception, quel couche, et quel type d'exception ?

    merci pour vos réponses car la je suis un peu perdu

  2. #2
    Membre confirmé Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Points : 452
    Points
    452
    Par défaut
    Je vais essayer de répondre le plus simplement à ta question

    Etant donné que tu utilises Hibernate avec Spring, toutes les exceptions d'Hibernate vont être converties en DataAccessException. Dans la doc de spring tu peux voir qu'il existe toute une hiérarchie...
    Ce sont des unchecked exceptions, donc tu n'as pas besoins de les catcher dans ton code.

    Par contre...
    S'il y a un problème en rapport avec la base de données, généralement l'utilisateur ne peut rien faire, on va donc le rediriger vers une page d'erreur par défaut en lui indiquant que le service est temporairement indisponible.

    Comment faire ?
    Il y a plusieurs moyens. Le plus simple avec struts 2 est d'utiliser les global-exceptions.
    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
         <global-results>
               <result name="unhandledException">/unhandled-exception.jsp</result>
          </global-results>
    
          <global-exception-mappings>
               <exception-mapping exception="java.lang.Exception" result="unhandledException"/>
          </global-exception-mappings>
    Si une exception survient, l'utilisateur sera redirigé vers la jsp /unhandled-exception.jsp
    A toi d'ajouter une exception-mapping si tu veux afficher un message spécial lorsqu'un traitement avec la base de données a échoué, sachant que tu auras des DataAccessException...
    Pensez au tag
    Mon blog Tutoriels et Astuces en Java : http://emmanuelpierre.free.fr/blog/index.php?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 144
    Points : 95
    Points
    95
    Par défaut
    ta réponse est très clair merci !
    mais comme je dois logguer l'exception, dans quelle couche dois je catcher l'exception ? dans le service ou dans la presentation ?
    je pense que le plus propre serait le service, mais j'ai peur que cela interfere avec l'utilisation de mon proxy jta qui doit rollbacker ma global transaction

    qu'en penses tu ?

    merci

  4. #4
    Membre confirmé Avatar de supermanu
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    330
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 330
    Points : 452
    Points
    452
    Par défaut
    Je ne suis pas très familié avec Struts 2 (plus avec Struts 1), mais en regardant rapidement, je trouve les pistes suivantes :

    - redirection vers une action spécifique
    Lorsqu'une erreur survient, tu peux rediriger vers une action au lieu d'une page jsp. Donc tu pourrais y faire un traitement du style logger une exception.

    Dans la doc suivante, on voit que lorsqu'on a une exception java.sql.SQLException on est redirigé vers une action nommée "SQLException" (elle n'est pas écrite mais ça ne doit pas être dur d'en faire une)

    http://struts.apache.org/2.0.11/docs...iguration.html

    - utiliser le système des intercepteurs (interceptors)
    http://struts.apache.org/2.0.6/strut...terceptor.html
    Pensez au tag
    Mon blog Tutoriels et Astuces en Java : http://emmanuelpierre.free.fr/blog/index.php?

  5. #5
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Gestion des exceptions avec Spring
    Existe -il un mécanisme de gestion des exceptions métiers en spring équivalent à l'exception Handler de struts???

Discussions similaires

  1. Gestion des exceptions dans un BackgroundWorker
    Par Pacane dans le forum VB.NET
    Réponses: 0
    Dernier message: 21/01/2010, 20h38
  2. Réponses: 0
    Dernier message: 07/11/2009, 11h46
  3. Gestion des exceptions dans JSP
    Par lolo_ici_et_la dans le forum Struts 2
    Réponses: 3
    Dernier message: 05/07/2009, 11h27
  4. [débutant] gestion des exceptions dans web.xml
    Par jgaslain dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 06/02/2007, 09h46
  5. [EXCEPTION] Gestion des Exceptions dans PL/SQL
    Par Titouf dans le forum PL/SQL
    Réponses: 4
    Dernier message: 08/02/2006, 00h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo