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] RPC issues (Serialization)


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut [GWT] RPC issues (Serialization)
    Bonjour,

    Je rencontre actuellement un problème dans le développement de mon application :
    Normalement mon code devrait permettre de remplir ma celltable coté client via la serialization d'un tableau de données (requêtes sql) côté serveur.

    Quand je fais ça de façon statique (en créant des élément à la main) pas de problème mais dans le cas contraire, une fois compilée, l'application m'affiche une barre de loading à la place des données.

    code server side :

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    public Members[] getUser() throws IllegalArgumentException {
     
     
    		Connection conn = null;
     
    		// parameters
    		String url      = "jdbc:mysql://localhost/";
    		String db       = "grbl";
    		String driver   = "com.mysql.jdbc.Driver";
    		String user     = "xxx";
    		String pass     = "xxx";   
    		Members[] res   = new Members[10];
    		int i           =0;
    		int size        = 0; //size of Users db table
    		url = url + db;		 
     
     
    		try {
     
                	Class.forName(driver).newInstance();
                	conn = DriverManager.getConnection(url, user, pass);
     
    		} catch (Exception e) {
     
                	System.err.println("Mysql Connection Error: ");
                	// for debugging error
                	e.printStackTrace();
    		}
     
    		if (conn == null)  {
                	System.out.println("~~~~~~~~~~ can't get a Mysql connection");
    		}		
     
     
     
     
    		Statement select = null;
     
    		try {
    			select = conn.createStatement();
     
    			ResultSet result=null;
    			size = 10; //result.getRow();
    			i = 0;
    			result = select.executeQuery("select * from user");				
     
     
    			while (i<10){//) {	
    				result.next();
    				res[i].newMembers(result.getString(1),result.getString(2),result.getString(3));
    				i++;
    			}
    			return res;
     
     
     
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}       
     
            return res;
    	}

    code client side :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    USERS=new ArrayList<Lgm.User>();
    		greetingService.getUser(new AsyncCallback<Members[]>() {
     
     
    			@Override
    			public void onSuccess(Members[] result) {
     
    				for(int i=0; i< result.length;i++)
    					USERS.add(new User(result[i].firstname,result[i].lastname,result[i].activity));

    class Members :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    package fr.lgm.shared;
     
    import java.io.Serializable;
     
    public class Members implements Serializable {
    	public String firstname,lastname,activity;
     
    	public void  newMembers(String firstname, String lastname, String activity) {
     
    		this.firstname = firstname;
    		this.lastname = lastname;
    		this.activity = activity;
    	}
    }

    Si quelqu'un aurait une idée à ce sujet, merci.

    Jérôme



    (GWT 2.2.0 - Eclipse 3.6.1 - Win7 64)

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Par défaut
    Tu as un log à nous fournir?

  3. #3
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut
    log de la console ?

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    [WARN] Exception while dispatching incoming RPC call
    com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract fr.lgm.shared.Members[] fr.lgm.client.ScheduleRequest.getUser() throws java.lang.IllegalArgumentException' threw an unexpected exception: java.lang.NullPointerException
    	at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:385)
    	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:588)
    	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208)
    	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248)
    	at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    	at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
    	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729)
    	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    	at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49)
    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    	at org.mortbay.jetty.Server.handle(Server.java:324)
    	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
    	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647)
    	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
    	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    	at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    	at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)
    Caused by: java.lang.NullPointerException
    	at fr.lgm.server.ScheduleRequestImpl.getUser(ScheduleRequestImpl.java:145)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	at java.lang.reflect.Method.invoke(Unknown Source)
    	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569)
    	... 22 more
    [ERROR] 500 - POST /lgm/greet (127.0.0.1) 57 bytes

    Encore et toujours des erreurs de pointeur mais je vois ce qui est mal fait.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Par défaut
    Caused by: java.lang.NullPointerException
    at fr.lgm.server.ScheduleRequestImpl.getUser(ScheduleRequestImpl.java:145)
    Tu as un NullPointer ligne 145.... Sans doute un objet mal instancié, peut-être un souci de connection à la base.

  5. #5
    Membre averti
    Inscrit en
    Mars 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 26
    Par défaut
    Oui j'ai vu que j'avais des Nullpointer. Le problème ne vient pas de la connection à la base, j'ai vérifié.
    Donc ça me semble bien être une mauvaise instanciation mais le problème c'est que je ne la détecte pas (c'est pour ça que je demande de l'aide :p).

    Le problème vient bien de ma boucle while car quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    while (result.next()) {			
    				res[0]=new Members();
    				res[0].newMembers(result.getString(1),result.getString(2),result.getString(3));
    				res[1]=new Members();
    				res[1].newMembers(result.getString(1),result.getString(2),result.getString(3));
    				res[2]=new Members();
    				res[2].newMembers("ccc","333","3333333333");
    				res[3]=new Members();
    				res[3].newMembers("ddd","4444","4");
    			}
    			return res;
    je n'ai pas de problème.

    Par contre avec le code fournis dans mon premier message et bien ça ne fonctionne plus (pourtant l’instanciation est la même)

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    165
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 165
    Par défaut
    while (i<10){//) {
    result.next();
    res[i].newMembers(result.getString(1),result.getString(2),result.getString(3));
    i++;
    }
    Es-tu sure d'avoir 10 enregistrements en base? Le "while" de ton premier bout de code n'est pas le même que le deuxième.

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

Discussions similaires

  1. T'chat GWT + RPC Erreur
    Par TheDwarf01 dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 11/03/2010, 20h15
  2. GWT rpc générer un fichier XML
    Par slimArafa dans le forum GWT et Vaadin
    Réponses: 7
    Dernier message: 17/08/2009, 17h40
  3. Gwt - RPC - Base de données
    Par fluff dans le forum GWT et Vaadin
    Réponses: 4
    Dernier message: 07/05/2009, 09h00
  4. GWT-RPC, sécurité et serveur "clusterisé"
    Par ndeloof dans le forum GWT et Vaadin
    Réponses: 1
    Dernier message: 09/07/2008, 20h31
  5. GWT/RPC sérialization d'objet
    Par amarige dans le forum GWT et Vaadin
    Réponses: 6
    Dernier message: 08/05/2008, 19h52

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