web-dev-qa-db-fra.com

Transmettre la variable d'environnement définie par l'utilisateur à tomcat

J'utilise Eclipse pour le codage d'applications Web. À l'intérieur de cela, j'ai passé une variable d'environnement comme:

  1. Projet -> Exécuter en tant que -> Exécuter la configuration. Et onglet environnement sélectionné.
  2. Ajoutez une nouvelle variable d’environnement avec le nom APP_MASTER_PASSWORD et sa valeur.

Je peux accéder à cette valeur dans le code Java en tant que System.getenv("APP_MASTER_PASSWORD").

Mais maintenant, je souhaite transmettre cette variable d’environnement à Tomcat et y accéder dans l’application au lieu de la transmettre à Eclipse.

Alors, comment puis-je transmettre une telle variable à tomcat?

J'ai googlé à ce sujet. Mais je n'ai pas eu de solution.

Je vous remercie.

14
Naresh J

Vous pouvez utiliser setenv.bat ou .sh pour transmettre les variables d’environnement à Tomcat.

Créez un fichier CATALINA_BASE/bin/setenv.bat ou .sh, insérez la ligne suivante, puis démarrez Tomcat.

Sous Windows:

set APP_MASTER_PASSWORD=foo

Sur les systèmes Unix:

export APP_MASTER_PASSWORD=foo

29
Shinichi Kai

Vous devez utiliser la propriété système au lieu de la variable d'environnement dans ce cas. Editez vos scripts Tomcat pour Java_OPTS et ajoutez une propriété comme:

-DAPP_MASTER_PASSWORD=foo

et dans votre code, écrivez

System.getProperty("APP_MASTER_PASSWORD");

Vous pouvez également le faire dans Eclipse. Au lieu de Java_OPTS, copiez la ligne dans les paramètres VM à l’intérieur des configurations d’exécution.

18
Ankit

Les entrées d'environnement spécifiées par le balisage <Environment> sont JNDI, accessibles à l'aide de InitialContext.lookup sous Java:/comp/env. Vous pouvez spécifier des propriétés d'environnement pour JNDI à l'aide du paramètre environment du constructeur InitialContext et des fichiers de ressources application .

System.getEnv() concerne les variables d'environnement système du processus Tomcat lui-même.

Pour définir une variable d'environnement à l'aide de la commande bash: export Tomcat_OPTS=-Dmy.bar=foo Et démarrez Tomcat: ./startup.shPour récupérer la valeur de la propriété système bar, utilisez System.getProperty(). System.getEnv() peut être utilisé pour récupérer la variable d’environnement, à savoir Tomcat_OPTS.

7
NINCOMPOOP

Si vous démarrez votre Tomcat à partir d'Eclipse (vue "Serveurs"), vous devez disposer d'une entrée "Exécuter/exécuter la configuration" (menu) appelée "Apache Tomcat/Tomcat…". Lorsque vous sélectionnez cette entrée dans la liste des configurations d'exécution, vous obtenez une fenêtre avec plusieurs onglets, dont l'un est intitulé "Environnement". Vous pouvez y configurer des variables d’environnement pour votre Tomcat. Assurez-vous de redémarrer Tomcat après.

0
Renardo

Sous Windows, si vous ne trouvez pas setenv.bat, dans la deuxième ligne de catalina.bat (après @echo off), ajoutez ceci:
SET APP_MASTER_PASSWORD = toto

Peut-être pas la meilleure approche, mais fonctionne

0
ObviousChild