Ecriture dans fichier

Ecriture dans fichier - Java - Programmation

Marsh Posté le 09-11-2004 à 10:35:51    

Bonjour,
 
Je dois créer un fichier où les utilisateurs pour y lire des informations mais aussi écrire dedans.
 
Mon problème, j'aimerais savoir comment on procéde pour que tout le monde puisse lire, mais un seul écrit à la fois. Le seul hic, il faudrait que cela puisse se faire sur plusieurs applications en même temps (je travaille sur un serveur Tomcat)
 
Donc je sais pas trop s'il faut faire des threads dans ce cas vu qu'il faudrait que cela fonctionne entre plusieurs appli.
 
Merci pour vos suggestions
VoD

Reply

Marsh Posté le 09-11-2004 à 10:35:51   

Reply

Marsh Posté le 09-11-2004 à 10:57:13    

Accès en lecteur depuis plusieurs appli web distincts tournant sur le même serveur d'application ?

Reply

Marsh Posté le 09-11-2004 à 11:07:07    

oui c ca et en écriture aussi mais pour un seul user à la fois

Reply

Marsh Posté le 09-11-2004 à 11:30:32    

La lecture se fait de manière classique. Pour l'écriture, utilises un Singleton que tu positionnera dans ton web context qui sera partagé entre tes applis.

Reply

Marsh Posté le 09-11-2004 à 11:33:08    

Bah en fait c'est ma solution actuelle, je n'utilise pas de fichier mais ma var context.
Je veux changer çà en cas de reset ou autre du serv, pour que cela soit plus sécurisé.
 
Donc je ne souhaiterais pas trop partir dans cette optique ;)

Reply

Marsh Posté le 09-11-2004 à 11:39:40    

Je viens de trouver une solution pas mal avec la JDK 1.4
Je viens de faire un test et ca m'a l'air concluant
 
Qqun connait la classe FileLock ?
 
J'ai fait un prog vite fait
 

Code :
  1. RandomAccessFile file = new RandomAccessFile("c:/xyz.txt", "rw" );
  2. FileChannel channel = file.getChannel();
  3. FileLock lock = channel.lock();
  4. file.writeChars("Coucou" );
  5. lock.release();
  6. file.close();


 
Mon fichier est bien blocker en écriture entre plrs appli ... enfin gspr lol, j'ai juste testé sur une appli et d'ouvrir en mm tps le fichier à la main.


Message édité par VoD le 09-11-2004 à 11:40:03
Reply

Marsh Posté le 09-11-2004 à 12:04:45    

De toute façon la stratégie demeure la même que précedemment, sauf que grace à la méthode lock de FileChannel, tu pourras rajouter une "vrai" sécurité .

Reply

Marsh Posté le 09-11-2004 à 12:27:01    

phnatomass a écrit :

La lecture se fait de manière classique. Pour l'écriture, utilises un Singleton que tu positionnera dans ton web context qui sera partagé entre tes applis.

chaque context web à un classloader distinct, donc le singleton ne sera pas partagé, il y en aura une instance pour chaque appli.
 
 
 
 
 
 
Quand je vous dis que c'est de la merde les singletons....

Reply

Marsh Posté le 09-11-2004 à 12:50:41    

the real moins moins a écrit :


Quand je vous dis que c'est de la merde les singletons....


je ne vois pas le rapport  [:ziiio]

Reply

Marsh Posté le 09-11-2004 à 13:49:45    

Par contre,
est ce possible d'utiliser la classe FileLock pour verrouiller un fichier et ensuite un parser XML pour travailler dedans ?
Là j'y arrive pas en fait ...

Reply

Marsh Posté le 09-11-2004 à 13:49:45   

Reply

Marsh Posté le 09-11-2004 à 13:51:26    

c'est moi ou bien t'as oublié tout ce qu'on a tenté de t'expliquer dans ton autre topic qui avait le meme sujet? [:itm]

Reply

Marsh Posté le 09-11-2004 à 14:01:46    

Bah ca n'a rien à voir là !
La dernière fois j'étais parti sur une autre solution, celle que j'ai dite précedemment

Reply

Marsh Posté le 09-11-2004 à 22:19:10    

the real moins moins a écrit :

chaque context web à un classloader distinct, donc le singleton ne sera pas partagé, il y en aura une instance pour chaque appli.
 
 
 
 
 
 
Quand je vous dis que c'est de la merde les singletons....


 
pas forcement vrai .... dans jboss avec par defaut, les classes sont partagees sur tout le server

Reply

Marsh Posté le 09-11-2004 à 22:19:59    

même pour les war? ? parce que bon, tu me fais hésiter, mais j'aurais tendance à dire que c'est dans les specs, le fait que chaque web-app aie son propre classloader ...


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 09-11-2004 à 22:39:35    

non en fait, ca depend de l'option useJBossWebLoader = true ou false dans la definition du service tomcat (en general $JBOSS_HOME/server/default/deploy/jbossweb-tomcatxxx.jar/META-INF/jboss-service.xml

Reply

Marsh Posté le 09-11-2004 à 22:52:18    

:jap:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 10-11-2004 à 09:27:23    

Con que j'bosse pas sur JBoss ... enfin bon, vu que je souhaiterais qq chose qui ne perde pas les infos en cas de reset ou plantage du serv, il me faut plutot un fichier.
 
Donc personne n'a d'autres solutions pour partager un fichier exclusif entre plusieurs applis ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed