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.
Le code est bon je pense.
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); } }
En Java j2SE je récupère bien les sous dossiers.
Mais là j'ai :
J'ai également essayé ça (sans succès bien sur)
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)
avec accesDisque.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 System.setSecurityManager(new AccesDisque(father.<String> get("_Path")));
Si quelqu'un a une idée je suis preneur.
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); } } }
Merci d'avance
Partager