Bonjour,
Je suis débutant avec GWT. J'essaye de mettre en place une RPC mais je rencontre un problème. En effet lorsque j'exécute mon programme j'ai l'erreur suivante qui s'affiche :
com.google.gwt.user.client.rpc.IncompatibleRemoteServiceException: This application is out of date, please click the refresh button on your browser. ( Blocked attempt to access interface 'test.client.MonInterface', which is not implemented by 'test.server.MonServiceImpl'; this is either misconfiguration or a hack attempt )
Voila mon code :
Il s'agit juste d'un module qui affiche un outil d'upload de fichier (FileUpload)
extrait de la classe MonModule :
Le fichier de configuration de MonModule
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 form.addFormHandler(new FormHandler() { public void onSubmit(FormSubmitEvent event) { upload(upload.getFilename()); event.setCancelled(true); } @SuppressWarnings("unchecked") private void upload(String filename) { MonInterfaceAsync uploadService = (MonInterfaceAsync) GWT.create(MonInterface.class); ServiceDefTarget endpoint = (ServiceDefTarget) uploadService; String moduleRelativeURL = GWT.getModuleBaseURL() + "test.client.MonInterface"; System.out.println(moduleRelativeURL); System.out.println(filename); endpoint.setServiceEntryPoint(moduleRelativeURL); // (2) Create an asynchronous callback to handle the result. // AsyncCallback callback = new AsyncCallback() { public void onFailure(Throwable caught) { caught.printStackTrace(); } public void onSuccess(Object arg0) { Window.alert("Le fichier : "+upload.getFilename()+" a bien été uploadé!"); } }; // (3) Make the call. Control flow will continue immediately and later // 'callback' will be invoked when the RPC completes. // uploadService.update(filename, callback); } public void onSubmitComplete(FormSubmitCompleteEvent event) { Window.alert(event.getResults()); } });
La classe MonServiceImpl dans le 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 <?xml version="1.0" encoding="UTF-8" standalone="no"?> <module> <!-- Inherit the core Web Toolkit stuff. --> <inherits name="com.google.gwt.user.User"/> <!-- Inherit the GWTExt Toolkit library configuration. --> <inherits name="com.gwtext.GwtExt"/> <!-- Specify the app entry point class. --> <entry-point class="test.client.MonModule"/> <!--<inherits name="com.google.gwt.user.theme.standard.Standard"/>--> <!-- <inherits name="com.google.gwt.user.theme.chrome.Chrome"/> --> <inherits name="com.google.gwt.user.theme.dark.Dark"/> <stylesheet src="js/ext/resources/css/ext-all.css"/> <servlet class="test.server.MonServiceImpl" path="/test.client.MonInterface"/> </module>
et l'interface coté client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 public class MonServiceImpl extends RemoteServiceServlet implements MonService { public void update(String chemin){ File file = new File(chemin); File savedFile = new File("/fichier_upload/"+file.getName()); System.out.println(savedFile.getAbsolutePath()); try { savedFile.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } }
Les autres classes on été crée automatiquement par Eclipse (j'utilise le plugin Cypal studio).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public interface MonInterface extends RemoteService{ public void update(String chemin); }
Voila je suis vraiment bloqué donc si quelqu'un peux me dire d'ou vient le problème ca serais sympa![]()
Partager