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? P>
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. P>
4 Réponses :
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 P>
C'est plus de travail, mais je pense à long terme, cela vous servira mieux. P>
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?
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 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: p> 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. P> P>
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?
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 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). P> Mise à jour: strong> 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: p> 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 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 code> code> plutôt qu'un paramètre servlet.getservletconfig (). Code>
getinitparameter (ameName) code>
getinitparamètre ("myapp.connectionstring");
/ myWarfile code> ) Et je peux les obtenir en Java avec
servlet.getservletconfig (). getinitparamètre ("foo") code> ou
servlet.getservletconfig (). getinitparameter ("bar") code>. p>
code>, pas tout à fait sûr des subtilités de cette Mais il semble que cela puisse être une méthode plus appropriée. p>
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 i> 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.
Vous pouvez ajouter le chemin d'accès à vos fichiers de vos propriétés de votre catalina_home / conf / CONF / CATALINA.PROPERTES COTE> dans le chargeur de classes "commun" commun.loader em>. p>.