Bonjour à tous,
Je travaille sur une application web struts-EJB3.
J'aimerais faire remonter une exception qui a lieu au niveau du Bean à l'utilisateur.
J'ai bien sur vu la FAQ du site
http://java.developpez.com/faq/strut...sc_actionerror
Le traitement marche pour une exception (récupération d'un fichier à une fausse adresse) à l'intérieur d'un EJB stateless.
Le Problème:
Dans un autre EJB, stateless aussi, aucune exception n'est détectée. Elle est détectée durant l'éxécution, mais pas par le controlleur struts, et donc tout continue comme si rien n'était.
L'éxécution de cette instruciton par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 String x = null; x.compareTo("yes man");
affiche bien dans la console une exception de type:
javax.ejb.EJBTransactionRolledbackException: java.lang.NullPointerException
mais le controlleur struts n'y voit rien!
Dans mon struts-config, voici la partie qui concerne les exceptions:
Plus généralement, je me pose quelques questions:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <global-exceptions> <exception key="all" type="java.lang.Exception" handler="org.apache.struts.action.ExceptionHandler" path="/aelRessources/technique/exceptionAttrapeeStruts.jsp" /> </global-exceptions>
Déjà une chose: je ne comprends pas ce qu'est l'attribut "key".
Ensuite, est ce que cette démarche suffit pour traiter n'importe quelle excpetion qui occurerait dans le code!? J'ai lu que cela ne marche que pour les exceptions qui occurent dans les classes actions, mais chez moi ce n'est pas le cas: l'exception se produit dans une classe qui n'est pas une classe "Action", et elle est quand même détectée par struts en renvoie le browser(dans un cas) vers la page définie dans struts-config...
Quelqun aurait-il une idée!? Merci!
Partager