通过Tomcat配置将变量传递给JRuby应用程序

Nic*_*s C 3 java tomcat config ruby-on-rails jruby

在部署为WAR文件的JRuby应用程序中配置变量的最佳方法是什么?操作组将需要根据我的应用程序部署位置配置数据库设置和其他环境变量.因为它是WAR文件,但它们不能直接访问database.yml或任何环境文件.

我希望能够对他们需要配置的任何内容进行变量化,并将它们放入Tomcat app.config/web.config中.这可能吗?你如何将这些价值观带入JRuby?

Nic*_*s C 5

因此,从JRuby中获取Tomcat servlet上下文中的参数非常简单,我发现:

$servlet_context
Run Code Online (Sandbox Code Playgroud)

例如,如果我在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>
Run Code Online (Sandbox Code Playgroud)

您可以按如下方式访问JRuby中的值:

$servlet_context.getInitParameter("database.url")
Run Code Online (Sandbox Code Playgroud)

这将返回字符串"jdbc:h2:localhost /〜/ test_db".