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 :

Utilisation de RPC avec une classe en retour


Sujet :

GWT et Vaadin Java

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 78
    Points : 46
    Points
    46
    Par défaut Utilisation de RPC avec une classe en retour
    Bonsoir tout le monde !!!

    j'arrive parfaitement à récupérer les données stockées dans mon datastore avec un retour de RPC en String[] (le code ci-dessous fonctionne !!!).
    Par contre, je n'arrive pas à récupérer ces données avec en retour, ma classe Experience (par exemple void getExperiences(AsyncCallback<List<Experience>> callback); !!!
    un coup j'obtiens une erreur 500 après le déploiement ! un coup je n'arrive pas à compiler (did you forget to inherit a required module) ... je deviens fou :-) Comment dois-je m'y prendre ???

    Merci pour votre aide !!!



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    package com.morey.xxx.client;
    import java.util.List;
    import com.google.gwt.user.client.rpc.RemoteService;
    import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
    @RemoteServiceRelativePath("experience")
    public interface ExperienceService extends RemoteService {
      public String[] getExperiences();
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    package com.morey.xxx.client;
    import java.util.List;
    import com.google.gwt.user.client.rpc.AsyncCallback;
    public interface ExperienceServiceAsync {
    	void getExperiences(AsyncCallback<String[]> callback);
    }
    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
     
    package com.morey.xxx.server;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Logger;
    import javax.jdo.JDOHelper;
    import javax.jdo.PersistenceManager;
    import javax.jdo.PersistenceManagerFactory;
    import com.google.gwt.user.server.rpc.RemoteServiceServlet;
    import com.morey.xxx.client.ExperienceService;
    public class ExperienceServiceImpl extends RemoteServiceServlet implements ExperienceService {
    	private static final long serialVersionUID = 1L;
    	private static final Logger LOG = Logger.getLogger(ExperienceServiceImpl.class.getName());
    	private static final PersistenceManagerFactory PMF = JDOHelper.getPersistenceManagerFactory("transactions-optional");
    	public String[] getExperiences() {
    		PersistenceManager pm = getPersistenceManager();
    		List<String> symbols = new ArrayList<String>();
    		try {
    			String query = "select from " + Experience.class.getName();
    			List<Experience> Experiences = (List<Experience>) pm.newQuery(query).execute();
    			for (Experience experience : Experiences) {
    				symbols.add(experience.getTitre());
    			}
    		} finally {
    			pm.close();
    		}
    		String[] ret = new String[symbols.size()];
    		int i = 0;
    		for (String s : symbols) {
    			ret[i] = s;
    			i++;
    		}
    		return ret;
    	}
    	private PersistenceManager getPersistenceManager() {
    		return PMF.getPersistenceManager();
    	}
    }
    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
     
    @UiHandler({ "buttonListe" })
    	void onClickListe(ClickEvent e) {
    		ExperienceServiceAsync ExperienceService = GWT
    				.create(ExperienceService.class);
    		ExperienceService.getExperiences(new AsyncCallback<String[]>() {
    			public void onFailure(Throwable error) {
    				Window.alert(error.getMessage());
    			}
     
    			public void onSuccess(String[] experiences) {
    				DisplayExperiences(experiences);
    			}
    		});
     
    public void DisplayExperiences(String[] experiences) {
    		Grid g = new Grid(5, 5);
    		g.setText(1, 1, experiences[1]);
    		g.setText(1, 2, experiences[2]);
    		g.setText(1, 2, experiences[3]);
    		g.setText(1, 2, experiences[4]);
    		g.getCellFormatter().setWidth(0, 2, "256px");
    		centre.clear();
    		centre.add(g);
    	}

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Il aurait été préférable de voir le code qui ne fonctionne pas (avec List<Experience> donc).
    Sinon où est déclaré la classe Experience ? Elle doit être dans un package "source" de GWT...


    a++

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    Merci adiGuba !!!

    alors ... c'est parti !!!


    Ma classe Experience (package client) :
    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
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    package com.morey.xxx.client;
    import javax.jdo.annotations.IdGeneratorStrategy;
    import javax.jdo.annotations.IdentityType;
    import javax.jdo.annotations.PersistenceCapable;
    import javax.jdo.annotations.Persistent;
    import javax.jdo.annotations.PrimaryKey;
    @PersistenceCapable(identityType = IdentityType.APPLICATION)
    public class Experience {
    	@PrimaryKey    
    	@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)    
    	private Long id;    
    	@Persistent    
    	private String prenom;    
    	@Persistent    
    	private String nom;    
    	@Persistent    
    	private String titre;    
    	@Persistent    
    	private String categorie;
    	@Persistent    
    	private String commentaire;
    	@Persistent    
    	private String note;
    	public Experience()
    	{
    	}
    	public Experience(String prenom,String nom,String titre,String categorie,String commentaire,String note) {
    		this.prenom=prenom;
    		this.nom=nom;
    		this.titre=titre;
    		this.categorie=categorie;
    		this.commentaire=commentaire;
    		this.note=note;
    	}
    	public Long getId() {
    		return id;
    	}
    	public void setId(Long id) {
    		this.id = id;
    	}
    	public String getPrenom() {
    		return prenom;
    	}
    	public void setPrenom(String prenom) {
    		this.prenom = prenom;
    	}
    	public String getNom() {
    		return nom;
    	}
    	public void setNom(String nom) {
    		this.nom = nom;
    	}
    	public String getTitre() {
    		return titre;
    	}
    	public void setTitre(String titre) {
    		this.titre = titre;
    	}
    	public String getCategorie() {
    		return categorie;
    	}
    	public void setCategorie(String categorie) {
    		this.categorie = categorie;
    	}
    	public String getCommentaire() {
    		return commentaire;
    	}
    	public void setCommentaire(String commentaire) {
    		this.commentaire = commentaire;
    	}
    	public String getNote() {
    		return note;
    	}
    	public void setNote(String note) {
    		this.note = note;
    	}
    }
    ExperienceService (package client) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    package com.morey.xxx.client;
    import java.util.List;
    import com.google.gwt.user.client.rpc.RemoteService;
    import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
    @RemoteServiceRelativePath("experience")
    public interface ExperienceService extends RemoteService {
      public String[] getExperiences();
      public List<Experience> recupExperiences();
    }
    ExperienceServiceAsync (package client) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    package com.morey.xxx.client;
    import java.util.List;
    import com.google.gwt.user.client.rpc.AsyncCallback;
    public interface ExperienceServiceAsync {
    	void getExperiences(AsyncCallback<String[]> callback);
    	void recupExperiences(AsyncCallback<List<Experience>> callback);
    }
    ExperienceServiceImpl (package server) :
    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
     
    package com.morey.xxx.server;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.jdo.JDOHelper;
    import javax.jdo.PersistenceManager;
    import javax.jdo.PersistenceManagerFactory;
    import com.google.gwt.user.server.rpc.RemoteServiceServlet;
    import com.morey.floportop.client.Experience;
    import com.morey.floportop.client.ExperienceService;
    public class ExperienceServiceImpl extends RemoteServiceServlet implements ExperienceService {
    	private static final long serialVersionUID = 1L;
    	private static final Logger LOG = Logger.getLogger(ExperienceServiceImpl.class.getName());
    	private static final PersistenceManagerFactory PMF = JDOHelper.getPersistenceManagerFactory("transactions-optional");
    	private List<Experience> ListeDesExperiences = new ArrayList<Experience>();
    	public String[] getExperiences() {
    		PersistenceManager pm = getPersistenceManager();
    		List<String> symbols = new ArrayList<String>();
    		try {
    			String query = "select from " + Experience.class.getName();
    			List<Experience> Experiences = (List<Experience>) pm.newQuery(query).execute();
    			for (Experience experience : Experiences) {
    				symbols.add(experience.getTitre());
    			}
    		} finally {
    			pm.close();
    		}
    		String[] ret = new String[symbols.size()];
    		int i = 0;
    		for (String s : symbols) {
    			ret[i] = s;
    			i++;
    		}
    		return ret;
    	}
    	public List<Experience> recupExperiences()
    	{
    		ListeDesExperiences=null;
    		PersistenceManager pm = getPersistenceManager();
    		try {
    			String query = "select from " + Experience.class.getName();
    			List<Experience> Experiences = (List<Experience>) pm.newQuery(query).execute();
    			ListeDesExperiences=Experiences;
    		} finally {
    			pm.close();
    		}
    		return ListeDesExperiences;
    	}
    	private PersistenceManager getPersistenceManager() {
    		return PMF.getPersistenceManager();
    	}
    }
    Ca fonctionne parfaitement avec le String[] !!!!! :-)
    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
     
    @UiHandler({ "buttonListe" })
    	void onClickListe(ClickEvent e) {
    		ExperienceServiceAsync ExperienceService = GWT
    				.create(ExperienceService.class);
    		ExperienceService.getExperiences(new AsyncCallback<String[]>() {
    			public void onFailure(Throwable error) {
    				Window.alert(error.getMessage());
    			}
    			public void onSuccess(String[] experiences) {
    				DisplayExperiences(experiences);
    			}
    		});
     
    public void DisplayExperiences(String[] experiences) {
    		Grid g = new Grid(5, 5);
    		int ligne = 0;
    		g.setText(1, 1, experiences[1]);
    		g.setText(1, 2, experiences[2]);
    		g.setText(1, 2, experiences[3]);
    		g.setText(1, 2, experiences[4]);
    		g.getCellFormatter().setWidth(0, 2, "256px");
    		centre.clear();
    		centre.add(g);
    	}
    Ca ne fonctionne pas avec la classe Experience !!!!! Erreur interne 500 :-(
    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
     
    @UiHandler({ "buttonListe" })
    	void onClickListe(ClickEvent e) {
    		ExperienceServiceAsync ExperienceService = GWT
    				.create(ExperienceService.class);
    		ExperienceService.recupExperiences(new AsyncCallback<List<Experience>>() {
    			public void onFailure(Throwable error) {
    				Window.alert(error.getMessage());
    			}
     
    			public void onSuccess(List<Experience> experiences) {
    				DisplayListeExperiences(experiences);
    			}
    		});
     
    public void DisplayListeExperiences(List<Experience> experiences) {
    	 Grid g = new Grid(5, 5);
    	 int ligne = 0;
    	 for (Experience temp : experiences) {
       	    ligne++;
    	    g.setText(ligne, 1, temp.getTitre());
    	    g.setText(ligne, 2, temp.getCategorie());
    	 }
    	 g.getCellFormatter().setWidth(0, 2, "256px");
    	 centre.clear();
    	 centre.add(g);
    	 }
    Une idée du problème ???

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par morey83 Voir le message
    Une idée du problème ???
    Avec l'erreur 500 tu dois avoir une stacktrace de l'exception...
    Ca pourrait aider.


    A vue de nez je ne vois pas d'erreur.
    Il y a toutefois deux éléments qui pourraient poser problème :
    • Le code de la classe Experience va être compilé en JavaScript par GWT. Et je ne suis pas sûr du fonctionnement des annotations de JDO...
    • Vérifies le type exact de la liste créée par pm.newQuery(query).execute().
      Si c'est une ArrayList c'est OK, mais si c'est une liste spécifique de JDO ca posera problème pour créer l'équivalent en GWT.



    a++

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    Merci adiGuba !!!

    effectivement avec une trace ça peut aider :-)


    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
     
    javax.servlet.ServletContext log: Exception while dispatching incoming RPC call
    com.google.gwt.user.client.rpc.SerializationException: Type 'com.google.appengine.datanucleus.query.StreamingQueryResult' was not included in the set of types which can be serialized by this SerializationPolicy or its Class object could not be loaded. For security purposes, this type will not be serialized.: instance = [com.morey.floportop.client.Experience@13f61e6, com.morey.floportop.client.Experience@347d1f, com.morey.floportop.client.Experience@2bbe0, com.morey.floportop.client.Experience@17c8eee, com.morey.floportop.client.Experience@8bbe7c, com.morey.floportop.client.Experience@86c96d, com.morey.floportop.client.Experience@11245a3]
    	at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serialize(ServerSerializationStreamWriter.java:667)
    	at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamWriter.writeObject(AbstractSerializationStreamWriter.java:130)
    	at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter$ValueWriter$8.write(ServerSerializationStreamWriter.java:153)
    	at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamWriter.serializeValue(ServerSerializationStreamWriter.java:587)
    	at com.google.gwt.user.server.rpc.RPC.encodeResponse(RPC.java:605)
    	at com.google.gwt.user.server.rpc.RPC.encodeResponseForSuccess(RPC.java:471)
    	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:563)
    	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:265)
    	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:305)
    	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:511)
    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166)
    	at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:125)
    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    	at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35)
    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    	at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    	at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43)
    	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157)
    	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388)
    	at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
    	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765)
    	at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418)
    	at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:254)
    	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    	at org.mortbay.jetty.Server.handle(Server.java:326)
    	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
    	at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923)
    	at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76)
    	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
    	at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146)
    	at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:527)
    	at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:437)
    	at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:444)
    	at com.google.tracing.CurrentContext.runInContext(CurrentContext.java:220)
    	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:308)
    	at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:300)
    	at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:441)
    	at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251)
    	at java.lang.Thread.run(Thread.java:724)

  6. #6
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    j'ai donc rajouté ça à ma classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    import java.io.Serializable;
    public class Experience implements Serializable {
    et j'ai modifié la récupération des données de la manière suivante :

    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 List<Experience> recupExperiences() {
    		List<Experience> returnList = new ArrayList<Experience>();
    		PersistenceManager pm = getPersistenceManager();
    		try {
    			String query = "select from " + Experience.class.getName();
    			List<Experience> steps = (List<Experience>) pm.newQuery(query).execute();
    			 for(Experience step: steps)
    			 {
    			     returnList.add(step);
    			 }
    		} finally {
    			pm.close();
    		}
    		return returnList;
    	}


    je pense être proche de la fin...

    J'obtiens ceci dans ma procédure d'affichage des données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	public void DisplayListeExperiences(List<Experience> experiences) {
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       Window.alert("nb : " + experiences.size());
    me renvoie un bon résultat : nb : 7

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       Window.alert(experiences.toString());
    me renvoie :
    [
    com.morey.xxx.client.Experience@2d,
    com.morey.xxx.client.Experience@2e,
    com.morey.xxx.client.Experience@2f,
    com.morey.xxx.client.Experience@30,
    com.morey.xxx.client.Experience@31,
    com.morey.xxx.client.Experience@32,
    com.morey.xxx.client.Experience@33
    ]

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    Et dans une boucle ca me ramène exactement ce qu'il faut !!! youpi :-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    		for (Experience temp : experiences) {
    			Window.alert("ligne : " + ligne + "    -    titre : " + temp.getTitre());
    		}

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    J'oublie toujours le implements Serializable aussi !

    Sinon y'a moyen de faire plus court :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     	public List<Experience> recupExperiences() {
    		PersistenceManager pm = getPersistenceManager();
    		try {
    			String query = "select from " + Experience.class.getName();
    			return new ArrayList<Experience>(pm.newQuery(query).execute());
    		} finally {
    			pm.close();
    		}
    	}
    Voir même avec le try-with-ressources de Java 7 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     	public List<Experience> recupExperiences() {
    		try (PersistenceManager pm = getPersistenceManager()) {
    			String query = "select from " + Experience.class.getName();
    			return new ArrayList<Experience>(pm.newQuery(query).execute());
    		}
    	}
    a++

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2014
    Messages : 78
    Points : 46
    Points
    46
    Par défaut
    Merci beaucoup adiGuba !

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 21/12/2014, 22h42
  2. Utiliser Application.run avec une classe
    Par baya22 dans le forum VBA Access
    Réponses: 1
    Dernier message: 12/04/2012, 12h07
  3. Réponses: 2
    Dernier message: 20/05/2010, 11h06
  4. template et utilisation avec une classe existante
    Par vartav dans le forum Langage
    Réponses: 6
    Dernier message: 14/03/2007, 10h39
  5. Utilisation iterator avec une classe perso
    Par SteelBox dans le forum C++
    Réponses: 19
    Dernier message: 07/03/2005, 11h30

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