salut tout le monde,
j'ai des fichiers sur le serveur que je peux acceder à partir de la reponse:
je que si un utilisateur modifie par exemple fichier1, un autre utilisateur ne peut modifier que les autres fichiers, donc j'ai essayer comme ca:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 envoie(){ ServletOutputStream out = response.getOutputStream(); . . . out.write(ContenuFichier.getBytes()); out.flush(); }
ca ne marche pas, comme je veux, je lance l'application 2 fois (appli1 et appli2), si j'ouvre le fichier1 par appli1, je peux ouvrir par exemple le fichier2 par le biais de appli2, mais si j'ouvre et je ferme le fichier par appli1 je ne pourrai pas l'ouvrir par appli2 et c'est ça qui m'intrigue.
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 public class NewAction extends ...{ Hashtable table = new Hashtable(); //car Hashtable est thread safe //il aura comme pair (chemin du fichier, channel liée à ce fichier) public synchronized ActionForward modifier(..., HttpServletRequest request, HttpServletResponse response) throws ...{ String source = //chemin que je recupere à partir de ma base de donnees channelSource = (Channel)table.get(source); if(listFichier.containsKey(source) && (channelSource != null) && channelSource.isOpen() ) { wait(); } FileInputStream fichierSource = new FileInputStream(source); channelSource = fichierSource.getChannel(); table.put(source, channelSource); envoie(); if(!channelSrc.isOpen()) notifyAll(); actionForward = mapping.findForward(SUCCESS_KEY); return actionForward; } }
cela fait presque une semaine que je travaille sur ce module
merci de me repondre
Partager