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);
	}