IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

même problème acces concurrent aux fichiers sur le serveur


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut même problème acces concurrent aux fichiers sur le serveur
    salut tout le monde,

    j'ai des fichiers sur le serveur que je peux acceder à partir de la reponse:
    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();
    }
    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
    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;
     
        }
    }
    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.

    cela fait presque une semaine que je travaille sur ce module
    merci de me repondre

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 185
    Points : 109
    Points
    109
    Par défaut
    j'ai vu sur internet que je pourrai eventuellement utiliser FileChannel, et ensuite la methode lock() et release(), mais je ne sais pas comment faire .

    please help

Discussions similaires

  1. Réponses: 0
    Dernier message: 04/11/2009, 17h45
  2. Réponses: 4
    Dernier message: 23/11/2008, 02h05
  3. Réponses: 15
    Dernier message: 03/03/2008, 09h25
  4. acces concurent à des fichiers sur le serveur
    Par al3alwa dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 08/06/2007, 15h41
  5. Problème de dépot de fichier sur un serveur
    Par PHIL45 dans le forum Delphi
    Réponses: 3
    Dernier message: 18/01/2007, 17h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo