Bonjour
Je suis débutant avec GWT et j'utilise le livre d'Olivier Gérardin pour apprendre.
Actuellement je fais un test de calcul et tout se passe bien niveau IHM mais quand je clique sur mon bouton pour faire mon appel asynchrone j'ai le droit à mon code "onFailure" avec un message dans la console :
16 janv. 2010 22:06:42 com.google.appengine.tools.development.LocalResourceFileServlet doGet
WARNING: No file found for: /gwttest/add
Voici mon fichier XML :
Mon interface :
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 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>addServAsync</servlet-name> <servlet-class>e.g.exemple.server.AdditionServiceImpl</servlet-class> </servlet> <servlet-mapping> <servlet-name>addServAsync</servlet-name> <url-pattern>/GwtTest/add/</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>GwtTest.html</welcome-file> </welcome-file-list> </web-app>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 @RemoteServiceRelativePath("add") public interface AdditionService extends RemoteService { long additionner(long x, long y); }
L'implementation :
Et enfin mon entrypoint :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 package e.g.exemple.client; import com.google.gwt.user.client.rpc.AsyncCallback; public interface AdditionServiceAsync { void additionner(long x, long y, AsyncCallback<Long> callback); }
Auriez vous une idée pour la provenance de ce message ? je pense que ça provient de mon fichier xml mais comme je ne suis pas sur je me suis permis de poser l'ensemble du code.
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 package e.g.exemple.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.core.client.GWT; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyUpEvent; import com.google.gwt.event.dom.client.KeyUpHandler; import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; public class GwtTest implements EntryPoint { private final TextBox nombre1 = new TextBox(); private final TextBox nombre2 = new TextBox(); private final Button btnCalcul = new Button("Additionner"); private final TextBox resultat = new TextBox(); private final AdditionServiceAsync addServAsync = GWT.create(AdditionService.class); public void onModuleLoad() { RootPanel.get("nombre1").add(nombre1); RootPanel.get("nombre2").add(nombre2); RootPanel.get("btnCalcul").add(btnCalcul); RootPanel.get("resultat").add(resultat); class ActionCalcul implements ClickHandler { public void onClick(ClickEvent event) { envoyerCalcul(); } private void envoyerCalcul() { btnCalcul.setEnabled(false); long x = Integer.parseInt(nombre1.getText()); long y = Integer.parseInt(nombre2.getText()); addServAsync.additionner(x, y, new AsyncCallback<Long>() { public void onFailure(Throwable caught) { resultat.setText("Erreur de communication"); } public void onSuccess(Long result) { resultat.setText(""+result); } }); } } ActionCalcul handler = new ActionCalcul(); btnCalcul.addClickHandler(handler); } }
En vous remerciant à l'avance
Partager