如何在JBoss中创建全局上下文变量?

时间:2010-06-09 18:27:46

标签: java java-ee jboss jboss-4.2.x

这是我稍后发布的问题的后续跟踪:“Can I use a single WAR in multiple environments?”。我能够在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的新手,所以如果有任何其他信息可以帮助我告诉我,我会附加到这个问题。

1 个答案:

答案 0 :(得分:1)

我使用与PropertiesService类似的内容来处理数据库URL和其他与环境相关的事情。

因此,我不再承担提供不同环境相关工件的负担。