这是我稍后发布的问题的后续跟踪:“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的新手,所以如果有任何其他信息可以帮助我告诉我,我会附加到这个问题。