Назад | Перейти на главную страницу

Установка переменной среды для сервлета Tomcat 6

Я использую установку 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

Надеюсь, это поможет, - Крис