où/comment configurer les ressources de configuration de Tomcat .la guerre des fichiers
J'ai une source arbre .la guerre de fichier que je dois modifier pour que je puisse ajouter un peu de spécifique à l'application informations de configuration (dans ce cas, une chaîne de connexion jdbc, mais je peut avoir d'autres propriétés comme des ressources). Quelles sont les meilleures pratiques pour savoir où mettre les informations de configuration et de l'accès à ce service à partir de l'intérieur de la Servlet?
Je devine que ce Référence pour la configuration Tomcat a quelque chose à faire avec elle, mais mes yeux écarquillés quand j'essaie de le lire.
OriginalL'auteur Jason S | 2009-10-05
Vous devez vous connecter pour publier un commentaire.
Pour le cas spécifique d'une chaîne de connexion JDBC, je vous conseille d'utiliser un Tomcat-géré pool de connexion à la place. Vous pouvez en lire plus à ce sujet ici:
http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html
C'est plus de travail, mais je pense que dans le long terme, il va vous servir au mieux.
cela fait un peu plus de sens maintenant, après avoir passé du temps en tirant mes cheveux (hélas...) et après avoir regardé le TABLEAU de server.xml. Comment puis-je accéder à la source de données à partir de l'intérieur de mon application Java, si? L'exemple de la page donne un exemple de JSP, mais pas de code Java.
Ils comprennent quelques exemples plus bas (par exemple, dans le PostgreSQL section, étape 4).
Il y a un autre exemple dans le cadre de cette question: stackoverflow.com/questions/1119817/...
C'est un lien unique réponse. Pourriez vous s'il vous plaît de l'enrichir avec un extrait de la source liée?
OriginalL'auteur Matt Solnit
Pour web de configuration de l'application, vous pouvez placer la config sur le chemin quelque part. Ensuite, vous pouvez obtenir à partir de votre application avec getResourceAsStream ou si vous préférez le Printemps:
Il y a un certain nombre d'endroits où vous pouvez mettre les propriétés sur le chemin de classe dans Tomcat. afin qu'il regarde:
Par exemple, si vous mettez ma-config.propriétés à la fois dans un .fichier jar et dans WEB-INF/classes, l'une dans WEB-INF/classes seront utilisées. Vous pouvez utiliser ce mécanisme par défaut pour tester la config et remplacer prod config sur les serveurs de prod.
N'est-ce pas WEB_INF/classes à l'intérieur de votre application web?
OriginalL'auteur leonm
Hmm. Il ressemble le plus simple chemin pour obtenir ce que je veux sur le Java côté de la demande est d'utiliser
Servlet.getServletConfig().
getInitParameter(parameterName)
par exemple getInitParameter("myApp.connectionString");Mais je ne sais pas où mettre cette. Le Tomcat docs parler de différentes permutations de context.xml mais je veux m'assurer que ce paramètre n'affecte que ma servlet et pas les autres. Je ne veux pas de localiser à l'intérieur de mon .la guerre de fichier afin que je puisse garder ce paramètre indépendant des applications (par exemple si j'installe une mise à niveau).
Mise à jour: j'ai tout compris, clé/valeur des paramètres accessibles par ServletContext.getInitParameter() rendez-vous ici (ou peut aller ici) dans ${CATALINA_HOME}/conf/server.xml:
Ceci définit deux paramètres, "toto" = "123", "bar" = "456" pour la servlet myWarFile.la guerre (ou plus exactement avec le chemin de l'URL
/myWarFile
) et je peux les retrouver en Java avecServlet.getServletConfig().getInitParameter("foo")
ouServlet.getServletConfig().getInitParameter("bar")
.J'ai aussi regardé JIRA de l'server.xml entrée (et ce qu'ils vous disent de le mettre à pour MySQL), ils utilisent un
Resource
plutôt qu'unParameter
, pas tout à fait sûr de les subtilités de cette mais il semble que cela pourrait être la méthode la plus appropriée.web.xml fichier? l'une dans ma .fichier war ou dans ${CATALINA_HOME}/conf? Si l'ancien, j'ai besoin de ne pas le faire, si ce dernier je ne comprends pas la syntaxe appropriée.
OriginalL'auteur Jason S
vous pouvez ajouter le chemin d'accès à vos fichiers de propriétés dans votre
CATALINA_HOME/conf/catalina.properties
dans le "commun" classloader commun.chargeur.OriginalL'auteur LE GALL Benoît