Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

tomcat : ou placer un fichier xml de paramétrage fonctionnel ?

4 réponses
Avatar
Gaël
Bonjour,

J'écris une application que je compte déployer sur plusieurs serveurs Tomcat
(4, 5, 5.5, ...).
Cette application est paramétrable (accès à une base de données, couleurs de
certains éléments, ...).
J'ai mis ces paramètres dans un fichier xml de configuration.

Mon problème est le suivant :
Cette application est vouée à évoluer : je devrai effectuer des montées de
versions en conservant le fichier xml de configuration.

Existe-t-il dans j2ee/tomcat un système permettant de conserver ce fichier
et ses données, lors du déploiement d'une nouvelle version ?
Existe-t-il un répertoire particulier destiné à ce type de fichier ?

J'ai envisagé de mettre mon paramétrage fonctionnel dans le fichier
"WEB-INF/web.xml".
Mais ce fichier me semble différent selon la version de Tomcat et je préfère
que mon paramétrage soit indépendants de celui de la mécanique servlet, jsp,
struts, ...
De plus, ça ne résout pas mon problème d'écrasement de fichier.

Merci pour votre aide.

Gaël.

4 réponses

Avatar
Simon OUALID
Gaël wrote:
Mon problème est le suivant :
Cette application est vouée à évoluer : je devrai effectuer des montées de
versions en conservant le fichier xml de configuration.




Perso j'utilise un WAR pour déployer tout le code de l'application web.
Et mes fichiers de configuration sont juste à coté, posés sur le
filesystem sans packaging. Puis je les charge lors du démarrage du
serveur sur l'init d'un servlet en load-on-startup.

Faut juste faire gaffe au build du WAR pour qu'il ne contienne *surtout*
pas les fichiers de configuration, sinon le class loader le prendra en
premier.

Mais il doit y avoir d'autres approches... :)

Avatar
jeje900ss
Gaël wrote:
Bonjour,


Bonjour


J'ai envisagé de mettre mon paramétrage fonctionnel dans le fichier
"WEB-INF/web.xml".
Mais ce fichier me semble différent selon la version de Tomcat et je préfère
que mon paramétrage soit indépendants de celui de la mécanique servlet, jsp,
struts, ...
De plus, ça ne résout pas mon problème d'écrasement de fichier.


Ca ne répond pas exactement à ta question.
Mais en ce qui me concerne, maintenant, ce qui touche à la config de mon
appli, je met tout dans le context de mon appli du conf/server.xml de
tomcat.

Par exemple :

imaginons que j'ai un bean Toto qui contient des parametre de config
config1 et config2.

Je met ça dans le context
<Resource
name="bean/totoBean"
type="com.bean.Toto"
factory="org.apache.naming.factory.BeanFactory"
config1="titi"
config2="tata"
/>

et je récupére ainsi les config au démarrage de l'appli

initCtx = new InitialContext();
envCtx = (Context) initCtx.lookup("java:comp/env");
Toto toto = (Toto) envCtx.lookup("bean/totoBean");

Comme ça je peux déployer les war et gérer les paramètre de config tous
ensemble dans le context de conf de tomcat.

Jérôme

Avatar
TestMan
Gaël wrote:
Bonjour,

J'écris une application que je compte déployer sur plusieurs serveurs Tomcat
(4, 5, 5.5, ...).
Cette application est paramétrable (accès à une base de données, couleurs de
certains éléments, ...).
J'ai mis ces paramètres dans un fichier xml de configuration.

Mon problème est le suivant :
Cette application est vouée à évoluer : je devrai effectuer des montées de
versions en conservant le fichier xml de configuration.

Existe-t-il dans j2ee/tomcat un système permettant de conserver ce fichier
et ses données, lors du déploiement d'une nouvelle version ?
Existe-t-il un répertoire particulier destiné à ce type de fichier ?

J'ai envisagé de mettre mon paramétrage fonctionnel dans le fichier
"WEB-INF/web.xml".
Mais ce fichier me semble différent selon la version de Tomcat et je préfère
que mon paramétrage soit indépendants de celui de la mécanique servlet, jsp,
struts, ...
De plus, ça ne résout pas mon problème d'écrasement de fichier.

Merci pour votre aide.

Gaël.


Bonjour,

En premier, assure toi que tout tes "besoins" en terme de resources
(Datasource, URL paramétrable, Session Mail) sont bien définit au niveau
de ton descripteur d'archive (EAR ou WAR selon ton choix d'archi)
ensuite il ne te restera plus qu'à créer les resources nécessaires selon
les procédures du serveur d'appli, et de l'associations de ces resources
vers les références locales JNDI attendues par ton descripteur.

Ainsi, sous condition que tu n'utilises pas plus de resources, les
nouvelles versions se déploieront automatiquement et utiliseront les
paramétrages existants (et quel que soit ton serveur d'appli)

Pour Tomcat, il y a deux possibilités modifier le fichier server.xml
commun pour y ajouter les besoins de chaque webapp (pas trés propre,
mais rapide), ou alors créer un petit fichier séparé dans les sous
répoertoire du répertoire /conf qui portera le nom de ta webapp et qui
listera tous les éléments.
Ainsi il pourrait comporter pour un datasource au minimum :
- définition de datasource (driver, url, ...)
- définition de l'association entre ce datasource et l'allias attendu
(parfois optionel, par exemple si la définition est dans un contexte local)

Ce qui est domage dans tomcat, c'est que cette étape soit manuelle, mais
elle ne pose pas vraiment de grande difficulté ...

Pour plus d'info tente la doc, mais je te conseille de regarder le
paramétrage des exemples livrés avec Tomcat il sont plus révélateur de
la phylosophie modulaire ...

A+

TM

Avatar
Gaël
Merci pour vos réponses.
Je vais étudier vos solutions avant de me décider mais l'utilisation du
sous-répertoire "conf" me plait bien.

Gaël.