Précédent   Forum des professionnels en informatique > Java > Serveurs, conteneurs, et Java EE > JBoss
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 29/01/2009, 17h20   #1
Invité de passage
 
Inscription : janvier 2009
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 13
Points : 0
Points : 0
Par défaut dossier de configuration externe d'une appli

bonjour,

je dois mettre en place un serveur JBoss pour ma boite et j'ai une petite contrainte à respecter qui est celle de l'externalisation des fichier properties d'une application.
je m'explique, avant on utilisait websphere et donc sur le serveur d'appli websphere on avait un dossier conf/ dans lequel on stockait tous les fichiers .properties de toutes les applications hors pour l'instant je ne vois pas de solution pour jboss autre que d'insérer tous ces fichiers dans l'ear directement..;ce qui est tres genant puisque nos fichiers de configs changent tous les jours et qu'il s'agirait donc de redelpoyer l'ear a chaque modif des fichier properties, donc ya t il un moyen de spécifier dans Jboss un repertoire ou chaque application devra aller chercher ses fichiers de configurations en dehors de l'ear?

merci pour votre aide!
germain35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/01/2009, 23h04   #2
Membre émérite
 
Avatar de hasalex
 
Homme Alexis Hassler
Inscription : janvier 2009
Messages : 702
Détails du profil
Informations personnelles :
Nom : Homme Alexis Hassler
Âge : 42
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2009
Messages : 702
Points : 976
Points : 976
Tout dépend comment sont chargés tes fichiers.

Si c'est par des techniques de type FileSystem (new File(...), par exemple), alors tu mets tes fichiers où tu veux, à partir du moment où JBoss a la permission.

Si tu y accèdes par un classloader, alors tu dois les mettre dans un répertoire accessible via classloader !
  • Le premier endroit est effectivement l'ear ; sachant qu'il peut être déployé en mode répertoire, avec des techniques de liens symboliques tu peux t'en sortir.
  • Ensuite, tu peux les mettre dans un jar que tu mettrais dans le lib de JBoss. Par contre, dans ce cas, c'est forcément sous forme d'archive.
  • Enfin, il y a le répertoire conf de la configuration, qui est aussi accessible par un classloader. D'ailleurs JBoss l'utilise comme cela (cf. fichiers du sous-répertoire props).
__________________
Alexis Hassler, Consultant, formateur indépendant - mon entreprise, mon wiki, mon blog java
hasalex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2009, 11h42   #3
Invité de passage
 
Inscription : janvier 2009
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 13
Points : 0
Points : 0
merci pour ta reponse!

pourrais-tu m'expliquer les modifications à apporter à l'appli pour qu'elle aille chercher les fichiers properties dans le dossier conf par exemple par l'intermediarie d'un classloader?
germain35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2009, 17h58   #4
Membre émérite
 
Avatar de hasalex
 
Homme Alexis Hassler
Inscription : janvier 2009
Messages : 702
Détails du profil
Informations personnelles :
Nom : Homme Alexis Hassler
Âge : 42
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2009
Messages : 702
Points : 976
Points : 976
Par exemple :

Code :
1
2
3
Properties props = new Properties();
InputStream propStream = Mailer.class.getResourceAsStream(configFileName);
props.load(propStream);
__________________
Alexis Hassler, Consultant, formateur indépendant - mon entreprise, mon wiki, mon blog java
hasalex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2009, 14h58   #5
Invité de passage
 
Inscription : janvier 2009
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 13
Points : 0
Points : 0
mon probleme est que je dois externaliser les fichiers de configuration de l'appli a la racine genre "c:/conf/", je sais que les fichiers sont cherchés par défaut dans les repertoires WEB-INF/classe et WEB-INF/lib, n'y a t il pas un moyen simple de rajouter une entrée au classloader de l'application afin d'eviter de specifier dans chacune des classes le chemin complet de tous les fichier de configuration?
germain35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2009, 15h11   #6
Membre émérite
 
Avatar de hasalex
 
Homme Alexis Hassler
Inscription : janvier 2009
Messages : 702
Détails du profil
Informations personnelles :
Nom : Homme Alexis Hassler
Âge : 42
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2009
Messages : 702
Points : 976
Points : 976
Finalement, le dossier conf de la config de JBoss te convient ou pas ?

Si tu veux un autre répertoire, totalement externe à JBoss, tu peux toujours le mettre dans le classpath, avec la variable d'environnement JBOSS_CLASSPATH.
__________________
Alexis Hassler, Consultant, formateur indépendant - mon entreprise, mon wiki, mon blog java
hasalex est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2009, 15h34   #7
Invité de passage
 
Inscription : janvier 2009
Messages : 13
Détails du profil
Informations forums :
Inscription : janvier 2009
Messages : 13
Points : 0
Points : 0
meric pour tes reponses...

dsl je sais ca change un peu tout l'temps, parcque je debarque un peu dans le projet et c'est un peu flou...

le truc qu'on me demande c de spécifier pour chaque appli un dossier de configuration bien précis du type "c:/product/conf/nomAppli/" dans lequel se trouveront tous les fichier properties et xml de conf.

la solution du JBOSS_CLASSPATH dans mon cas n'est pas tres efficace dans le sens ou je risque d'avoir des conflits puisque JBOSS_CLASSPATH est commun a toutes les applis... c'est pour ca que j'aurai souhaité definir un classloader spécifique par EAR, et la je suis vraiment perdu je cherche mais je n'arrive à rien d'exceptionnel..

j'avais vaguement vu l'idée du fichier jboss-app.xml dans l'EAR qui permettait de definir des repertoire mais je ne comprend pas bien le fonctionnement? aurais tu une idée?

merci encore pour ton aide
germain35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 17h42.


 
 
 
 
Partenaires

Hébergement Web