Передача переменных в приложение JRuby через конфигурацию Tomcat

Как лучше всего настроить переменные в приложении JRuby, развернутом в виде WAR-файла? Группе операций потребуется настроить параметры базы данных и другие переменные среды в зависимости от того, где развернуто мое приложение. Поскольку это файл WAR, у них нет прямого доступа к файлу database.yml или любому из файлов среды.

Я хочу иметь возможность изменять все, что им нужно настроить, и, возможно, добавить что-то в Tomcat app.config/web.config. Возможно ли это сделать? Как вы переносите эти значения в JRuby?


person Nicholas C    schedule 29.11.2010    source источник


Ответы (1)


Итак, я обнаружил, что получить параметры из контекста сервлета Tomcat в JRuby очень просто:

$servlet_context

Так, например, если бы в файле web.xml было определено следующее:

# from inside the web.xml context
<context-param>
  <param-value>jdbc:h2:localhost/~/test_db</param-value>
  <param-name>database.url</param-name>
</context-param>

Вы можете получить доступ к значению в JRuby следующим образом:

$servlet_context.getInitParameter("database.url")

Это вернет строку «jdbc:h2:localhost/~/test_db».

person Nicholas C    schedule 07.12.2010
comment
Спасибо за это, полезно. Я развертываю несколько войн на разных движках, и вы можете добавить их в conf/<engine-name>/<host>/context.xml.default в другом формате: tomcat.apache.org/tomcat-6.0-doc/config/ - person Amala; 19.10.2012