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

GWT et Vaadin Java Discussion :

[GWT] Gestion des exceptions


Sujet :

GWT et Vaadin Java

  1. #1
    Invité
    Invité(e)
    Par défaut [GWT] Gestion des exceptions
    Bonjour,

    Peut-on faire remonter une exception entre la partie server et la partie client de GWT ?

    Si j'essai de mettre un "throws ServiceException" dans la déclaration de l'interface des services distants, GWT me retourne une erreur signalant que ServiceException n'est pas Serialisable...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public interface UtilisateurService extends RemoteService {		
    	public List getUsers() throws ServiceException;
    }
    Erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Type 'com.xxx.gwt.client.services.ServiceException' was not serializable and has no concrete serializable subtypes
    Existe-t-il une solution pour faire remonter les erreurs jusqu'a l'IHM ?

    Merci,
    Loïc

  2. #2
    Membre éclairé
    Inscrit en
    Novembre 2005
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 240
    Par défaut
    oui bien sûr que l'on peut.

    il faut que ton execption soit dans cette liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    http://code.google.com/webtoolkit/documentation/java.lang.html
    ou alors comme toute classe qui doit transiter entre client et serveur, il faut qu'elle implemente l'interface IsSerializable.

    Bonne journée

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je viens de tester en implémentant isSerializable à ma classe ServiceException et ça ne plante plus à la compilation.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public class ServiceException extends Exception implements IsSerializable {
     
    	public ServiceException(String message) {
    		super(message);
    	}
     
    	public ServiceException(String message, Throwable throwble) {
    		super(message, throwble);
    	}
     
    }
    Par contre lorsque je souhaite intercepter mon exception dans le client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void onFailure(Throwable caught) {
    	        	Window.alert(caught.getMessage());
    }
    Je n'arrive pas à récupérer mon message d'erreur...Le message récupéré est
    The call failed on the server; see server log for details
    Comment faire pour récupérer le message original de mon exception ?

    Edit : En controlant le Thowable il s'agit d'une exception du type InvocationException et non mon exception d'origine...
    Dernière modification par Invité ; 09/10/2007 à 10h53.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bon c'est étrange tout de même, a priori je viens de mettre aun constructeur sans paramètre dans ma classe ServiceException (de manière à répondre aux exigence de l'interface IsSerializable) et depuis dans mon "onFailure(Throwable caught)" je récupère bien une exception du type ServiceException.

    Mon seul souci mainteant c'est que caught.getMessage() me retroune null alors que je l'ai initialisé lors du déclenchement de l'exception dans mon service.

    Quelqu'un aurait une idée ?

    Loïc

  5. #5
    Invité
    Invité(e)
    Par défaut
    J'ai trouvé, la solution consiste à faire hériter ma classe ServiceException de SerializableException.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public class ServiceException extends SerializableException {
     
    	public ServiceException() {
    		super();
    	}
     
    	public ServiceException(String message) {
    		super(message);		
    	}
     
     
    }
    Et tout fonctionne !

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 10
    Par défaut pas pour moi
    J'ai essayé d'implémenter IsSerializable, d'étendre SerializableException qui est dépréciée (Deprecated. As of GWT 1.5, Exception implements Serializable and can be used in place of this class).

    J'obtient tjrs une exception com.google.gwt.user.client.rpc.StatusCodeException avec une cause null...

    :-(

    Je vais aller chercher dans la doc.

    Cordialement,
    Zied Hamdi

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Septembre 2009
    Messages : 6
    Par défaut Documentation
    Hello all,

    J'ai trouvé la solution à votre soucis par ici :
    http://code.google.com/intl/fr-FR/we...tml#exceptions

    Bonne lecture (la partie concernant les exceptions est assez courte et très claire ).

    ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ADOConnect] gestion des exception en tout temps
    Par portu dans le forum Bases de données
    Réponses: 1
    Dernier message: 20/04/2005, 19h01
  2. [ORACLE 9i] Gestion des exceptions
    Par sygale dans le forum SQL
    Réponses: 6
    Dernier message: 19/08/2004, 15h06
  3. Gestion des exception (EOleException)
    Par shurized dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/06/2004, 17h25
  4. [XMLRAD] gestion des exceptions
    Par pram dans le forum XMLRAD
    Réponses: 2
    Dernier message: 28/01/2003, 17h48
  5. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11

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