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 :
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());
	        }
	    });
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
 
<?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>
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
 
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();
		}
	}
}
et l'interface coté client
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
public interface MonInterface extends RemoteService{
	public void update(String chemin);
}
Les autres classes on été crée automatiquement par Eclipse (j'utilise le plugin Cypal studio).
Voila je suis vraiment bloqué donc si quelqu'un peux me dire d'ou vient le problème ca serais sympa