Bonjour a tous !

J'ai un problème GWT (quelle surprise). En fait je voudrai pour lister les sous-dossiers d'un dossier (coté serveur) via un appel asynchrone.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
List<BaseTreeModel> lesDossiers = new LinkedList<BaseTreeModel>();
 
		for(File f : new File(father.<String> get("_Path")).listFiles()){
			if(f.isDirectory()){
				BaseTreeModel child = new BaseTreeModel();
				Integer profondeur = father.<Integer> get("_Profondeur") + 1;
				child.set("_Profondeur", profondeur);
				child.set("_Name", f.getName());
				child.set("_Path", f.getAbsolutePath());
				lesDossiers.add(child);
			}
		}
Le code est bon je pense.
En Java j2SE je récupère bien les sous dossiers.
Mais là j'ai :

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
 
GRAVE: Une exception ou une erreur s''est produite dans le conteneur durant le traitement de la requête
java.security.AccessControlException: access denied (java.lang.RuntimePermission setContextClassLoader)
	at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)
	at java.security.AccessController.checkPermission(AccessController.java:546)
	at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)
	at java.lang.Thread.setContextClassLoader(Thread.java:1394)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:190)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:550)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:380)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:288)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
J'ai également essayé ça (sans succès bien sur)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
System.setSecurityManager(new AccesDisque(father.<String> get("_Path")));
avec accesDisque.java
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
 
import java.io.FilePermission;
 
public class AccesDisque extends SecurityManager{
 
	private String debutPath;
 
	public AccesDisque(String s){
		debutPath = s;
	}
 
	public void checkPermission(FilePermission perm){}
 
	public void checkRead(String filename) {
		if(filename.startsWith(debutPath)){
			FilePermission perm = new FilePermission(filename, "read");
			checkPermission(perm);
		}
	}
}
Si quelqu'un a une idée je suis preneur.

Merci d'avance