tomcat : ou placer un fichier xml de paramétrage fonctionnel ?
4 réponses
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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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... :)
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.
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... :)
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
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'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
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
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 ...
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
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.
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.