Paramètre Variable d'environnement pour Tomcat 6 Servlet

J'utilise l'installation par défaut d'Ubuntu de Tomcat 6. Je déploie ROOT.war et j'essaie de définir une variable d'environnement spécifique, c'est-à-dire accessible à partir de System.getenv () dans Servlet.init (config).

Selon les docs ( http://tomcat.apache.org/tomcat-6.0-doc/config/context.html ), je peux le spécifier dans un élément Context dans conf / Catalina / localhost / ROOT.xml. Je l'ai créé avec ces contenus:

<Context> <Environment name="FOO" value="bar" type="java.lang.Ssortingng" override="false"/> </Context> 

Et j'ai déployé le webapp comme d'habitude, c'est-à-dire sur webapps / ROOT.war.

Server.getenv ("FOO") dans Servlet.init (config) renvoie toujours null. Qu'est-ce qui me manque?

Dans la list de diffusion des users Tomcat:

Il n'est pas tout à fait clair à partir de la documentation Tomcat, mais vous ne créez pas de variables d'environnement qui peuvent être récupérées à l'aide de System.getenv. Au lieu de cela, vous placez des inputs dans le context JNDI.

Vous voudrez les récupérer comme ceci:

// Obtenir notre context de dénomination environnement Context initCtx = new InitialContext (); Context envCtx = (Context) initCtx.lookup ("java: comp / env");

Ssortingng FOO = (Ssortingng) envCtx.lookup ("FOO");

// maintenant FOO devrait avoir la valeur "bar" de votre

La documentation pour les ressources JNDI peut être trouvée ici: http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html

Espérons que cela aide, – -chris