Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2906 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  ResourceBundle basé sur un fichier situé à une url spécifique

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

ResourceBundle basé sur un fichier situé à une url spécifique

n°463349
El_gringo
Posté le 21-07-2003 à 14:04:46  profilanswer
 

C'est possible de faire ça, non ?
C'est à dire que, dans une web-app, j'ai un répertoire "config", dans celui-ci, je voudrais faire une répertoire "lang" qui contiendrait tous les .properties de traduction de l'appli. C'est possible d'utiliser un ResourceBundle pour faire ça ? Et, si oui, vous avez une idée de comment ?
J'aurais été tenté d'utiliser PropertyResourceBundle, mais à priori, il vaut mieux utiliser ResourceBundle.getBundle, non ? enfin, j'en sais rien, j'suis un peu perdu là. heeeeeelp !

mood
Publicité
Posté le 21-07-2003 à 14:04:46  profilanswer
 

n°463407
benou
Posté le 21-07-2003 à 14:44:18  profilanswer
 

je connais pas bien les ressources bundle, mais si tu mets tno rep conf/lang dans le classpath, ca devrait marcher, non ?


---------------
ma vie, mon oeuvre - HomePlayer
n°463423
El_gringo
Posté le 21-07-2003 à 14:55:10  profilanswer
 

benou a écrit :

je connais pas bien les ressources bundle, mais si tu mets tno rep conf/lang dans le classpath, ca devrait marcher, non ?


 
J'connais pas tellement non plus. C chiant, à chaque fois que j'dois modifier le classpath, il faut faire un nouvelle procédure pr tous les clients qui utilisent mon truc. Si j'peux éviter, j'préfère...

n°463428
benou
Posté le 21-07-2003 à 15:01:00  profilanswer
 

bon, je connais pas, mais comme ca, en regardant l'interface du bazard, a part en recodant un Classloader qui va aller chercher les fichiers dans le rep que tu veux, je vois pas trop comment tu peux faire .si tu dois pas modifier le classpath .. :/
 
remarque, ca doit pas être hors de portée de réécrire un classloader qui fait juste ca ...


Message édité par benou le 21-07-2003 à 15:01:42

---------------
ma vie, mon oeuvre - HomePlayer
n°463441
El_gringo
Posté le 21-07-2003 à 15:09:41  profilanswer
 

benou a écrit :

bon, je connais pas, mais comme ca, en regardant l'interface du bazard, a part en recodant un Classloader qui va aller chercher les fichiers dans le rep que tu veux, je vois pas trop comment tu peux faire .si tu dois pas modifier le classpath .. :/
 
remarque, ca doit pas être hors de portée de réécrire un classloader qui fait juste ca ...


 
Oula... c'est pas un peu crado de faire ça !?

n°463446
benou
Posté le 21-07-2003 à 15:12:44  profilanswer
 

bha si tu fais ca bien nan : un ClassLoader qui prend en chemin une liste de File à ajouter au classpath c'est plutot sympa comme objet ...


---------------
ma vie, mon oeuvre - HomePlayer
n°463447
El_gringo
Posté le 21-07-2003 à 15:18:28  profilanswer
 

benou a écrit :

bha si tu fais ca bien nan : un ClassLoader qui prend en chemin une liste de File à ajouter au classpath c'est plutot sympa comme objet ...


 
Ben, tellement sympa que s'en est très très étonnant que ça n'existe pas déja. s'en est même louche... :heink:

n°463450
phnatomass
Je m'empare de ton esprit !!
Posté le 21-07-2003 à 15:19:53  profilanswer
 

Pour faire dans l'elegance et les best practices il est judicieux de placer tes .properties dans  des sous repertoires de ton web-inf\classes correspondant au nom de package.
Ainsi dans ton code tu recupere ton fichier en faisant un ResourceBundle.getBundle("tonpackage.taresource" );  
De toute façon si tu utilises ANT par exemple tes fichiers properties peuvent être externalisé dans un rep quelconques mais quand tu créeras ton (war ou ear) il sera placé dans le bon rep.
Ainsi lors de la compilation ou de l'archivage ça va le faire .

n°463452
benou
Posté le 21-07-2003 à 15:22:17  profilanswer
 

qu'est ce qui te fais dire que c'est une appli web qu'il fait  :??:
 
edit : quoiqu'il en soit, merci pour les best practices :jap:
edit2: mais en fait, j'aime pas mettre mes fichiers de conf dans classes... je trouve qeu c'est aps leur place ... sans parler du fait que eclipse fait le ménage dans le rep de compilation quand il fait refresh :/


Message édité par benou le 21-07-2003 à 15:23:54

---------------
ma vie, mon oeuvre - HomePlayer
n°463460
El_gringo
Posté le 21-07-2003 à 15:32:12  profilanswer
 

phnatomass a écrit :

Pour faire dans l'elegance et les best practices il est judicieux de placer tes .properties dans  des sous repertoires de ton web-inf\classes correspondant au nom de package.
Ainsi dans ton code tu recupere ton fichier en faisant un ResourceBundle.getBundle("tonpackage.taresource" );  
De toute façon si tu utilises ANT par exemple tes fichiers properties peuvent être externalisé dans un rep quelconques mais quand tu créeras ton (war ou ear) il sera placé dans le bon rep.
Ainsi lors de la compilation ou de l'archivage ça va le faire .


 
Je sais que normalement ça se fait comme ça, mais ça ne me va pas. J'ai besoin que les fichier de description de langage soient isolés avec le reste de la config, pour la raison suivante : chaque client peut modifier ses ressources de traduction comme il le souhaite, et ma web app est mise à jour régulièrement. L'intéret du répertoire "conf" est de regrouper tout ce qui doit être conservé à chaque nouvelle livraison, pour ne rien oublier, ne rien risquer d'écraser...

mood
Publicité
Posté le 21-07-2003 à 15:32:12  profilanswer
 

n°463475
phnatomass
Je m'empare de ton esprit !!
Posté le 21-07-2003 à 15:43:03  profilanswer
 

benou a écrit :

qu'est ce qui te fais dire que c'est une appli web qu'il fait  :??:


Ou ai je parlé de WEB ?.
Si il utilise TOMCAT donc il fait du J2EE. (et pas du SWING par exemple).
J'ai donné un tuyeaux. J2EE ;)
Les WAR ne sont pas spécifiques au WEB mais à une app J2EE WEB ou pas


Message édité par phnatomass le 21-07-2003 à 15:43:53
n°463477
El_gringo
Posté le 21-07-2003 à 15:44:20  profilanswer
 

Et puis, dans mon premier post, je dis que c'est une web-app.
Mais revenons en à mon problème...

n°463483
benou
Posté le 21-07-2003 à 15:46:00  profilanswer
 

phnatomass a écrit :


Ou ai je parlé de WEB ?.


 

Citation :

il est judicieux de placer tes .properties dans  des sous repertoires de ton web-inf\classes


 
 

phnatomass a écrit :

Si il utilise TOMCAT donc il fait du J2EE.  


où a t il parlé de tomcat ???
 :heink:
 
edit : ok, il a parlé de web-app, j'avais pas vu, désolaid ! :/


Message édité par benou le 21-07-2003 à 15:48:09

---------------
ma vie, mon oeuvre - HomePlayer
n°463484
benou
Posté le 21-07-2003 à 15:46:57  profilanswer
 

El_gringo a écrit :

Et puis, dans mon premier post, je dis que c'est une web-app.


bordel, je suis bigleux ?  :??:  :sweat:
 
edit : ha ben ouais ... :/  :( :'(
désolé phnatomass ...


Message édité par benou le 21-07-2003 à 15:47:44

---------------
ma vie, mon oeuvre - HomePlayer
n°463491
benou
Posté le 21-07-2003 à 15:50:02  profilanswer
 

El_gringo a écrit :

Mais revenons en à mon problème...


bha, je sais pas quoi te proposer à part le coup du classpath ou du classloader ...


---------------
ma vie, mon oeuvre - HomePlayer
n°463493
El_gringo
Posté le 21-07-2003 à 15:50:11  profilanswer
 

Mais tout ça, c'est bien gentil, mais ça règle pas mon problème ! :D
Et phnatomass, toi aussi tu penses que si je rajoute le chemin de mes fichiers de description de langue au classpath, ça passera ?

n°463495
benou
Posté le 21-07-2003 à 15:50:50  profilanswer
 

El_gringo a écrit :

Et phnatomass, toi aussi tu penses que si je rajoute le chemin de mes fichiers de description de langue au classpath, ça passera ?


ca j'en suis sûr ! :o


---------------
ma vie, mon oeuvre - HomePlayer
n°463510
El_gringo
Posté le 21-07-2003 à 15:57:21  profilanswer
 

benou a écrit :


ca j'en suis sûr ! :o


 
ha, désolé, j'avais pas compris ça comme ça. Ben, j'crois que j'vais faire comme ça alors. Vu que j'ai pas l'choix ! :(  
Merci.

n°463512
phnatomass
Je m'empare de ton esprit !!
Posté le 21-07-2003 à 15:59:13  profilanswer
 

El_gringo a écrit :


la raison suivante : chaque client peut modifier ses ressources de traduction comme il le souhaite, et ma web app est mise à jour régulièrement. L'intéret du répertoire "conf" est de regrouper tout ce qui doit être conservé à chaque nouvelle livraison, pour ne rien oublier, ne rien risquer d'écraser...


De manière pratique comment les clients seront censé mettre à jour la conf.
Ils auront accès à un rep (distant) pour pouvoir éditer manuellement les fichier properties du ResourceBundle?
Tes clients sont des hommes ou un appli ?
 
Sinon tu peux faire des fichiers .properties normaux et pas des resourcesBundle et programmer à la main (ca se fait en 2 lignes) la gestion de la langue.

Code :
  1. // chargement de la lagnue française
  2. Poperties props_fr = new Poperties();
  3. props_fr.load(new FileInputStream("le rep\\"NOM_PROPRIETE+"_FR"+".properties" ));


Bien sur gestion d'exceptions, de File.separator, valeur de certaine proprietes (comme le repertoire des fichiers  properties) declaré dans un autre fichier de configuration général par exemple etc ..


Message édité par phnatomass le 21-07-2003 à 16:02:25
n°463516
phnatomass
Je m'empare de ton esprit !!
Posté le 21-07-2003 à 16:00:07  profilanswer
 

benou a écrit :


ca j'en suis sûr ! :o


+1  :jap:

n°463518
benou
Posté le 21-07-2003 à 16:00:29  profilanswer
 

mais en même temps, je comprend plus bien : c'est une web-app que tu distribues ?
 
le classpath tu le gère de quel façon ? parce que tomcat gère son propre classpath. je veux dire qu'il ne se sert pas du classpath système ...


---------------
ma vie, mon oeuvre - HomePlayer
n°463538
El_gringo
Posté le 21-07-2003 à 16:09:51  profilanswer
 

benou a écrit :

mais en même temps, je comprend plus bien : c'est une web-app que tu distribues ?
 
le classpath tu le gère de quel façon ? parce que tomcat gère son propre classpath. je veux dire qu'il ne se sert pas du classpath système ...


 
Exactement, c'est une web-app que je distribue.
Le classpath système est interprété par Tomcat, j'en suis sur.

n°463546
benou
Posté le 21-07-2003 à 16:13:55  profilanswer
 

El_gringo a écrit :


Le classpath système est interprété par Tomcat, j'en suis sur.


 :heink:  
 
pas chez moi ...
 
t'es vraiment sûr de toi ?
parce que quand tu regardes la commande quand il est lancé en tant que service, y a aucune référecne au classpath ... :/


---------------
ma vie, mon oeuvre - HomePlayer
n°463553
El_gringo
Posté le 21-07-2003 à 16:15:56  profilanswer
 

benou a écrit :


 :heink:  
 
pas chez moi ...
 
t'es vraiment sûr de toi ?
parce que quand tu regardes la commande quand il est lancé en tant que service, y a aucune référecne au classpath ... :/


 
Ha, non non en fait, j'suis pas sur du tout, j'me plantais. J'ai confondu classpath, et "path" (variable d'environnement windows) :D

n°463557
benou
Posté le 21-07-2003 à 16:17:17  profilanswer
 

El_gringo a écrit :


Ha, non non en fait, j'suis pas sur du tout, j'me plantais. J'ai confondu classpath, et "path" (variable d'environnement windows) :D


 :o  
 
bha, dans ce cas, je crois que tu vas pas échaper au codage du ClassLoader :o
 
remarque : tu peux peut-être trouver ce machin là tout fait, c'est pas rare comme besoin ...


---------------
ma vie, mon oeuvre - HomePlayer
n°463558
El_gringo
Posté le 21-07-2003 à 16:17:43  profilanswer
 

El_gringo a écrit :


 
Ha, non non en fait, j'suis pas sur du tout, j'me plantais. J'ai confondu classpath, et "path" (variable d'environnement windows) :D


 
Et du coup je peux faire comment pour que mon répertoire "conf/lang" soit dans la classpath ? La seule colution que tu vois, c'est d'écrire ce fameux classloader ?
J'm'en sent pas trop capable...
ça t'interresserai de faire ça... non ?  :whistle:

n°463561
benou
Posté le 21-07-2003 à 16:19:27  profilanswer
 

El_gringo a écrit :


ça t'interresserai de faire ça... non ?  :whistle:  


si j'avais du temps si ... j'ai jamais codé de classloader ...
 
déjà, il se trouve où ton rep conf/lang ?


---------------
ma vie, mon oeuvre - HomePlayer
n°463577
El_gringo
Posté le 21-07-2003 à 16:29:07  profilanswer
 

benou a écrit :


si j'avais du temps si ... j'ai jamais codé de classloader ...
 
déjà, il se trouve où ton rep conf/lang ?


 
à la racine de ma web-app, pourquoi ?

n°463597
El_gringo
Posté le 21-07-2003 à 16:37:33  profilanswer
 

Mais, j'y pense : tomcat à forcément ce genre de classloader, puisqu'il gère son propre classpath, non ?

n°463605
benou
Posté le 21-07-2003 à 16:46:12  profilanswer
 

El_gringo a écrit :

Mais, j'y pense : tomcat à forcément ce genre de classloader, puisqu'il gère son propre classpath, non ?


ouais, il a ses propres ClassLoader, mais ils doivent être un poil pluscompliqué parce qu'il gère le crechargement de classes en dynamique ...


---------------
ma vie, mon oeuvre - HomePlayer
n°463607
phnatomass
Je m'empare de ton esprit !!
Posté le 21-07-2003 à 16:46:56  profilanswer
 

Pour info. Tout les moteurs de servlet/JSP ont un ClassLoader "maison".
Chez moi j'utilise tomcat 4.1.18 et il inclut le classpath de l'environnement de l'OS dans son claspath.
A tester : Faire un ResourceBundle La ou que tu le souhaites et modifier la variable d'environnement classpath et regarde si ça fonctionne.
ps : Au fait pourquoi ne pas utilisaer la méthode que j'ai proposé plus haut. Les ClassLoader "maison" sont sympa mais ça fait presque usine à gaz dans ton cas.

n°463608
benou
Posté le 21-07-2003 à 16:47:02  profilanswer
 

El_gringo a écrit :


à la racine de ma web-app, pourquoi ?


ben parce que dans ce cas, tu dois livrer ce truc là en même tant que ta web-app => ca revient au même que si tu le mettais dans WEB-INF/classes, non ?


---------------
ma vie, mon oeuvre - HomePlayer
n°463616
lorill
Posté le 21-07-2003 à 16:52:20  profilanswer
 

benou a écrit :

bha si tu fais ca bien nan : un ClassLoader qui prend en chemin une liste de File à ajouter au classpath c'est plutot sympa comme objet ...


URLClassLoader

n°463620
benou
Posté le 21-07-2003 à 16:56:43  profilanswer
 

lorill a écrit :


URLClassLoader


bha oui ... c'est vrai que ca existe ca [:meganne]


---------------
ma vie, mon oeuvre - HomePlayer
n°463623
El_gringo
Posté le 21-07-2003 à 16:59:01  profilanswer
 

phnatomass a écrit :


A tester : Faire un ResourceBundle La ou que tu le souhaites et modifier la variable d'environnement classpath et regarde si ça fonctionne.
ps : Au fait pourquoi ne pas utilisaer la méthode que j'ai proposé plus haut. Les ClassLoader "maison" sont sympa mais ça fait presque usine à gaz dans ton cas.


 
Si ça fait pas partie de specs, c'est pas top. J'veux pas limiter ma web-app à 1 seul moteur de servlet...
Et, pr ta solution, tu veux dire de mettre les fichiers de ressources au milieu des classes ? J't'ai expliqué pourquoi j'pouvais pas me permettre de faire ça...

n°463624
El_gringo
Posté le 21-07-2003 à 17:00:09  profilanswer
 

un peu plus haut, El_gringo a écrit :


 
Je sais que normalement ça se fait comme ça, mais ça ne me va pas. J'ai besoin que les fichier de description de langage soient isolés avec le reste de la config, pour la raison suivante : chaque client peut modifier ses ressources de traduction comme il le souhaite, et ma web app est mise à jour régulièrement. L'intéret du répertoire "conf" est de regrouper tout ce qui doit être conservé à chaque nouvelle livraison, pour ne rien oublier, ne rien risquer d'écraser...

n°463628
benou
Posté le 21-07-2003 à 17:02:02  profilanswer
 

quand tu dis que tu relivre ta web-app, tu relivres pas toute la web-app ? juste le rep WEB-INF ou un truc dans le genre ?
 
ca te dérange pas que le rep conf soit accessible ? :/


Message édité par benou le 21-07-2003 à 17:02:12

---------------
ma vie, mon oeuvre - HomePlayer
n°463632
El_gringo
Posté le 21-07-2003 à 17:03:08  profilanswer
 

lorill a écrit :


URLClassLoader


 
Mais, ça me parait génial ça, merci beaucoup
Par contre j'ai jamais fouillé dans les classLoader, j'y connais pas grand chose. comme "dire" à la JVM d'utiliser tel ou tel classLoader ?

n°463635
El_gringo
Posté le 21-07-2003 à 17:04:57  profilanswer
 

benou a écrit :

quand tu dis que tu relivre ta web-app, tu relivres pas toute la web-app ? juste le rep WEB-INF ou un truc dans le genre ?
 
ca te dérange pas que le rep conf soit accessible ? :/


 
Je livre un .war qui contient toute l'appli (avec un répertoire conf "standard" ).
 
que le rep soit accessible, moi j'm'en tape ! :D
Pour l'instant, ça n'a dérangé aucun client.
C'est simple de l'interdire d'accès ?

n°463637
benou
Posté le 21-07-2003 à 17:05:50  profilanswer
 

El_gringo a écrit :


 
Mais, ça me parait génial ça, merci beaucoup
Par contre j'ai jamais fouillé dans les classLoader, j'y connais pas grand chose. comme "dire" à la JVM d'utiliser tel ou tel classLoader ?


dans ton cas, tu peux indiquer au RessourceBundle d'utiliser le ClassLoader que tu veux ...


---------------
ma vie, mon oeuvre - HomePlayer
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  ResourceBundle basé sur un fichier situé à une url spécifique

 

Sujets relatifs
Rezise une image à partir d un fichier ?Ouverture d'un fichier pdf depuis une applet...
Appel d'un fichier *.bat[c] insertion du nombre 0xA dans un fichier
formulaire --> direction email à la place de la base mySQLde l'AS400 (fichier .tto) vers VBA (Excel)
Extraction (puis gen) d'un fichier romfs.bin ???[PHP] import d'un fichier texte: les caractères spéciaux (resolu)
comment realiser un fichier Fichier HTML compiléTemps de transfert Base Access ...SQL serveur
Plus de sujets relatifs à : ResourceBundle basé sur un fichier situé à une url spécifique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR