3
這是我後來發佈的一個問題的後續:「Can I use a single WAR in multiple environments?」。我能夠在Tomcat中創建單一戰爭解決方案,但現在我們正在將應用程序遷移到JBoss 4.2,並且我無法弄清楚如何設置全局環境變量。如何在JBoss中創建全局上下文變量?
在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但失敗實現統一戰爭的目的 - 我仍然需要定製.war的開發,qa和prod。
我是JBoss新手,所以如果有任何額外的信息,只會讓我知道,我會附加到這個問題。
屬性服務是一個選項,它可以工作 - 但它不是特定於jboss?如果沒有對.war本身進行修改,那麼有一個.ar可能可以在jboss *和* netbeans中工作。可能? – NobodyMan 2010-06-09 20:02:27
我自己開發了一個類似的服務(解析$ {variables}),這些屬性文件我放在classpath的某個地方,因此我不會遇到與特定應用程序服務器上的依賴關係問題。 – stacker 2010-06-11 11:21:04
關於「JBOSS中的外部屬性」有兩個問題: 1)您是否將配置文件簽入您的源代碼管理系統? 2)應用程序如何知道使用哪個配置(DEV,TEST,UAT,PROD)? – dchucks 2010-08-11 19:00:09