Я использую установку Tomcat 6 в Ubuntu по умолчанию. Я развертываю ROOT.war и пытаюсь установить переменную окружения, специфичную для него, т.е. доступную из System.getenv () в Servlet.init (config).
Согласно документам (http://tomcat.apache.org/tomcat-6.0-doc/config/context.html), Я могу указать это в элементе Context в conf / Catalina / localhost / ROOT.xml. Я создал это с этим содержимым:
<Context>
<Environment name="FOO" value="bar" type="java.lang.String" override="false"/>
</Context>
И я развернул веб-приложение как обычно, то есть в webapps / ROOT.war.
Server.getenv ("FOO") в Servlet.init (config) по-прежнему возвращает значение null. Что мне не хватает?
Из списка рассылки пользователей Tomcat:
Это не совсем ясно из документации Tomcat, но вы не создаете переменные среды, которые можно получить с помощью System.getenv. Вместо этого вы помещаете записи в контекст JNDI.
Вы захотите получить их так:
// Получение контекста именования нашей среды Context initCtx = new InitialContext (); Контекст envCtx = (Контекст) initCtx.lookup ("java: comp / env");
Строка FOO = (Строка) envCtx.lookup («FOO»);
// теперь FOO должно иметь значение bar из вашего
Документацию для ресурсов JNDI можно найти здесь: http://tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html
Надеюсь, это поможет, - Крис