2010-11-29 78 views
3

在部署为WAR文件的JRuby应用程序中配置变量的最佳方式是什么?操作组将需要根据应用程序的部署位置来配置数据库设置和其他环境变量。由于它是WAR文件,尽管它们没有直接访问database.yml或任何环境文件的权限。通过Tomcat将变量传递给JRuby应用程序配置

我想能够变化任何他们需要配置,并让他们可能把东西放入Tomcat的app.config/web.config。这可能吗?你如何将这些值带入JRuby?

回答

5

所以从JRuby中Tomcat的servlet上下文得到的参数是非常简单的,我发现:

$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:本地主机/〜/ TEST_DB”。

+0

谢谢你,这很有用。我在不同的引擎中部署多个战争,你可以用不同的格式将它们添加到 `conf///context.xml.default`中:http://tomcat.apache.org/tomcat-6.0-doc/配置/ context.html#Context_Parameters – Amala 2012-10-19 19:23:27