Bonjour à tous,
Je travaille sur ubuntu, le serveur que j'utilise est jboss 4.0.4RC1
J'ai créer une classe d'exception "InvalidData" qui hérite de "Exception". Dans une méthode de mon EJB je lance l'exception InvalidData, mais je ne parviens pas à attraper cette exception dans la servlet qui fait l'appel.
Ce problème survient uniquement lorsque je fais tourner mon application sur un serveur se trouvant sur une autre machine. Lorsque je test sur mon serveur jboss en local, je n'ai aucun problème.
Est ce que quelqu'un a déjà rencontrer ce genre de problème? Est-ce que ce serais un problème de configuration du serveur?
D'avance merci.
A bientôt
# Type d'exception
Posté par mrlem (site web personnel) . Évalué à 1.
[^] # Re: Type d'exception
Posté par Nibuzer . Évalué à 1.
http://coding.mu/archives/2003/09/03/ejb-exception-handling/
"Because the EJB container does not know how to process an application-specific exception, it does not intercept any. Also, application exceptions are not logged by the container. Developers need not wrap such an exception in an EJBException. In fact, to prevent the container from hi-jacking the exception, developers SHOULD NOT write code to swallow the exception."
[^] # Re: Type d'exception
Posté par mrlem (site web personnel) . Évalué à 1.
La RemoteException en revanche ne sert pas à la même chose : elle n'est d'ailleurs pas "hi-jackée" par le container. De ce que j'ai compris, avant la version 1.4, elle servait uniquement aux exceptions liées à la communication entre l'interface remote et l'EJB, mais depuis la 1.4, elle sert aussi à encapsuler les autres exceptions pour fournir un moyen de les remonter.
[^] # Re: Type d'exception
Posté par Nibuzer . Évalué à 1.
Lorsque je fais ca il rentre bien dans le catch de Exception, et dans celui-ci j'affiche le type de l'exception lancée.
Le résultat est le type de mon exception InvalidDataException.
Cela prouve bien que mon InvalidDataException n'est pas encapsulée n'est ce pas?
[^] # Re: Type d'exception
Posté par mrlem (site web personnel) . Évalué à 2.
De quelle manière obtiens-tu ce résultat : getMessage, toString, ou bien getClass().getName() ? Parceque si la classe de l'exception était bel-et-bien InvalidDataException, cela serait catché...
[^] # Re: Type d'exception
Posté par Nibuzer . Évalué à 1.
voila texto le catch :
catch(Exception exc)
{
System.out.println("type de l'exception lancée : "+exc.getClass());
}
# re: servlet ne catch pas une exception lancée par un EJB
Posté par Xavier FACQ . Évalué à 1.
Effectivement, il doit certainement falloir que ta classe d'exception
implémente aussi "serializable", d'ou la classe RemoteException.
Il faut certainement que tu cherches dans ce sens.
D'autre part, pour une question de lisibilité, il faudrait peut etre mieux
renommer ta classe en InvalidDataException.
a+
Xavier
# pas remote
Posté par Nibuzer . Évalué à 1.
Donc je suppose que je ne pourrais pas avoir de RemoteException, je me trompe?
[^] # Re: pas remote
Posté par mrlem (site web personnel) . Évalué à 1.
;o)
[^] # Re: pas remote
Posté par Nibuzer . Évalué à 1.
# le problème est lié au classloader
Posté par Nibuzer . Évalué à 1.
Merci!
A bientôt
# le problème est lié au classloader
Posté par Nibuzer . Évalué à 1.
Merci!
A bientôt
# RESOLU
Posté par Nibuzer . Évalué à 3.
Merci pour votre aide.
A bientot
[^] # Re: RESOLU
Posté par mrlem (site web personnel) . Évalué à 2.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.