7
votes

Où / comment configurer les ressources de configuration pour les fichiers Tomcat .war

J'ai un arborescence source pour un fichier .war que je dois modifier afin que je puisse ajouter certaines informations de configuration spécifiques à l'application (dans ce cas une chaîne de connexion JDBC, mais je peux avoir d'autres ressources liées à des propriétés). Quelles sont les meilleures pratiques pour où mettre les informations de configuration et comment accéder à cela depuis le servlet?

Je suppose que ce Référence de configuration Tomcat a quelque chose à faire avec ça, mais mes yeux glissent quand j'essaie de le lire.


0 commentaires

4 Réponses :


4
votes

Pour le cas spécifique d'une chaîne de connexion JDBC, je vous recommanderais d'utiliser un pool de connexion géré par Tomcat. Vous pouvez en savoir plus sur le faire ici: http://tomcat.apache.org/tomcat- 5.5-DOC / JNDI-DATASOURCE-EXEMPLES-HOWTO.HTML

C'est plus de travail, mais je pense à long terme, cela vous servira mieux.


5 commentaires

Merci ... Vous avez probablement raison à propos de la longue course, mais c'est probablement la seule application Tomcat que je travaillerai pendant une longue période + Je n'ai pas trop de temps libre pour comprendre comment modifier ma demande. Les documents Apache ne sont pas très clairs.


Cela rend un peu plus de sens maintenant après avoir passé du temps à tirer mes cheveux (hélas ...) et après avoir regardé le serveur Jira.xml. Comment accéder à la DataSource de mon application Java, cependant? L'exemple de page donne un exemple de JSP mais pas de code Java.


Ils incluent quelques exemples plus bas (par exemple dans la section PostgreSQL, étape 4).


Il y a un autre exemple dans cette question: Stackoverflow.com/Questtions/1119817/...


C'est une réponse de liaison uniquement. Pourriez-vous l'enrichir avec un extrait de la source liée?



5
votes

Pour la configuration de l'application Web Vous pouvez placer la configuration sur la classe de classe quelque part. Ensuite, vous pouvez y arriver à partir de votre application avec getresourceastream ou si vous préférez le printemps: xxx

Il existe un certain nombre d'endroits où vous pouvez mettre les propriétés sur la classe de classe à Tomcat. Pour qu'il regarde: xxx

par exemple, si vous mettez My-Config.properties à la fois dans un fichier .jar et dans Web-Inf / Classes celui dans web- Inf / Classes seront utilisés. Vous pouvez utiliser ce mécanisme pour défaut pour tester la configuration de configuration et remplacer Prod Config sur les serveurs Prod.


2 commentaires

Qu'en est-il du contraire? Si je veux avoir un fichier de propriétés à l'intérieur de l'application Web au cas où le Tomcat peut être trouvé. Y-a-t-il un moyen de faire ça?


Web_inf / classes n'est-ce pas dans votre application Web?



1
votes

hmm. On dirait que le chemin le plus facile pour obtenir ce que je veux sur le côté Java de l'application est d'utiliser servlet.getservletconfig (). getinitparameter (ameName) getinitparamètre ("myapp.connectionstring");

mais je ne sais pas où mettre ceci. Tomcat Docs Parlez de diverses permutations de context.xml mais Je veux m'assurer que ce paramètre n'affecte que mon servlet et non d'autres. Je ne veux pas non plus la localiser dans mon fichier .war afin que je puisse conserver ce paramètre indépendant des applications (par exemple si j'installe une mise à niveau).


Mise à jour: Je l'ai compris, les paramètres de clé / valeur accessibles par servleContext.getinitparameter () aller ici (ou peut aller ici) en $ {catalina_home} /conf/server.xml: xxx

Ceci définit deux paramètres, "FOO" = "123", "BAR" = "456" pour le servlet myWarfile.war (ou plus précisément avec le chemin d'URL / myWarfile ) Et je peux les obtenir en Java avec servlet.getservletconfig (). getinitparamètre ("foo") ou servlet.getservletconfig (). getinitparameter ("bar") .

J'ai aussi consulté l'entrée Server.xml de Jira (et ce qu'ils vous disent de la définir pour MySQL ), ils utilisent une ressource plutôt qu'un paramètre , pas tout à fait sûr des subtilités de cette Mais il semble que cela puisse être une méthode plus appropriée. xxx


2 commentaires

Ces paramètres sont configurés dans l'étiquette de servlet du fichier web.xml, à l'aide de: init-param, nom-param-nom et param-Valeur. orionserver.com/docs/web.xml.html


quel fichier web.xml web.xml? Celui de mon fichier .war ou en $ {catalina_home} / Conf? Si le premier, je n'ai pas besoin de ne pas faire cela, si ce dernier, je ne comprends pas la syntaxe appropriée.



1
votes

Vous pouvez ajouter le chemin d'accès à vos fichiers de vos propriétés de votre catalina_home / conf / CONF / CATALINA.PROPERTES dans le chargeur de classes "commun" commun.loader . .


0 commentaires