3

这是我不久前发布的一个问题的后续:“我可以在多个环境中使用单个 WAR 吗? ”。我能够在 Tomcat 中创建单一战争解决方案,但现在我们正在将我们的应用程序迁移到 JBoss 4.2,我不知道如何设置全局环境变量。

在 Tomcat 6 中,这非常简单:我只是将以下代码段放入tomcat/conf/Catalina/myappname.xml

<Context ...>
   <Environment name="TARGET_ENV" value="DEV" type="java.lang.String" override="false"/>
</Context>

然后在我的应用程序中,我能够使用以下内容解析环境名称:

Context context = (Context) InitialContext().lookup("java:comp/env");
String targetEnvironment = (String) context.lookup("TARGET_ENV");

问题是我不知道在哪里/如何在 JBoss 中放置全局变量。我尝试将<Environment>标签放在以下文件中无济于事:

  • server/all/deploy/jboss-web.deployer/context.xml
  • server/default/deploy/jboss-web.deployer/context.xml

我知道我可以将环境变量放在我的应用程序的 web.xml 中,但这违背了进行统一战争的目的——我仍然需要为 dev、qa 和 prod 自定义 .war。

我是 JBoss 新手,所以如果有任何其他信息可以帮助我知道,我会附加到这个问题上。

4

1 回答 1

1

我对数据库 url 和其他与环境相关的东西使用类似于PropertiesService的东西。

因此,我免除了提供不同环境相关属性的负担。

于 2010-06-09T18:57:18.520 回答