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 :

remonter erreur du serveur au client


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Par défaut remonter erreur du serveur au client
    salut

    j'utilise gwt et struts et je tente de renvoyer les erreurs du server vers le client

    je me suis fait un mini projet simple...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    com.google.gwt.user.server.rpc.UnexpectedException: S
    ervice method 'public java.lang.String org.yournamehere.action.WebErrorAction.myMethod(java.lang.String) 
    throws org.yournamehere.client.ErrorManager' 
    threw an unexpected exception: java.lang.reflect.InvocationTargetException
    mon action
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class WebErrorAction extends RemoteServiceServlet implements GWTService {
     
        public WebErrorAction() {
        }
     
        public String myMethod(String s) throws ErrorManager {
            GWTServiceImpl serviceImpl = new GWTServiceImpl();
            return serviceImpl.myMethod(s);
        }
    }
    ma class d'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    public class ErrorManager extends Exception implements IsSerializable {
     
        private String errorManager;
     
        public ErrorManager() {
        }
     
        public ErrorManager(String errorManager) {
            this.errorManager = errorManager;
        }
     
        public String getErrorManager() {
            return this.errorManager;
        }
    }
    le service
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public interface GWTService extends RemoteService{
        public String myMethod(String s) throws ErrorManager;
    }
    service async
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    public interface GWTServiceAsync {
        public void myMethod(String s, AsyncCallback callback);
    }


    côté client, appel du service
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    public void callService(String s) {
            GWTServiceAsync service = (GWTServiceAsync) GWT.create(GWTService.class);
     
            AsyncCallback callback = new AsyncCallback() {
     
                public void onSuccess(Object result) {
                    lblServerReply.setText((String) result);
                }
     
                public void onFailure(Throwable caught) {
     
                    String details = caught.getMessage();
                    if (caught instanceof ErrorManager) {
                        details = ((ErrorManager) caught).getErrorManager() + " occured";
                    }
                    Window.alert("error " + details);
                }
            };
     
            ServiceDefTarget endpoint = (ServiceDefTarget) service;
            endpoint.setServiceEntryPoint("WebErrorAction.action");
            service.myMethod(s, callback);
        }
    implémentation de la méthode du service, provocation de l'erreur... pour tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public class GWTServiceImpl extends RemoteServiceServlet implements GWTService {
     
        public String myMethod(String s) throws ErrorManager {
            throw new ErrorManager("error occured " + s);
        }
    }
    struts.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <package name="samplepackage" extends="gwt-default">     
     
            <action name="WebErrorAction" class="org.yournamehere.action.WebErrorAction">
     
                <interceptor-ref name="autowiring"/>
                <interceptor-ref name="gwt"/>
            </action>
     
        </package>
    dans mon web.xml j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <filter>
            <filter-name>action2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
        </filter>
        <filter-mapping>
            <filter-name>action2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
    du côté client, onFailure est bien appelé...
    car j'ai le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    error: The call failed on the server; see server log for details
    c'est comme si ErrorManager ne serait pas reconnu, je crois

    une idée?

  2. #2
    Membre éclairé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Par défaut
    c'est une erreur dans le plugin struts2gwt

    http://code.google.com/p/struts2gwtp...es/detail?id=6

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

Discussions similaires

  1. Remonter des exceptions du serveur au client
    Par Mozofeuk dans le forum Silverlight
    Réponses: 0
    Dernier message: 26/03/2012, 17h19
  2. erreur d'execution application client/serveur sous serveur2008
    Par operateur321 dans le forum InterBase
    Réponses: 1
    Dernier message: 11/12/2010, 18h48
  3. Erreurs avec TNSping sur client Windows pour serveur Linux
    Par Soulghard dans le forum Administration
    Réponses: 3
    Dernier message: 01/07/2010, 16h08
  4. serveur multi client : erreur inconnue
    Par selon dans le forum Réseau
    Réponses: 0
    Dernier message: 29/03/2010, 18h37
  5. IO serveur et client ! erreur
    Par storm_3000 dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 25/08/2006, 15h36

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