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:

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>
Plus généralement, je me pose quelques questions:

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!