2011-10-26 82 views
5

在春天文件我有:的Tomcat + Spring和環境變量

<bean id="propertyConfigurer" class="org.myapp.MyConfigurator"> 
     <property name="locations"> 
     <list> 
         <value>classpath:configuration-${env}.properties</value> 
     </list> 
    </property> 
</bean> 

的$ {ENV}變量在Maven的配置文件定義。 但是,當我從eclipse運行tomcat 6(已發佈)中的應用程序時,它不會在maven中查找。那麼如何設置Tomcat的變量?

由於

隨機化

+0

http://stackoverflow.com/questions/3965446/how-to-read-system -environment-variable-in-spring-applicationcontext –

回答

6

添加系統變量:轉到運行 - >運行配置 - > Tomcat的 選擇參數選項卡,並添加到VM參數-Denv=blabla

4

爲了在可以在彈簧配合使用這條線在context.xml添加到右側上下文Tomcat的context.xml定義一個變量。在Eclipse

<Parameter name="env" value="ABCDEFG" override="false"/> 
+0

覆蓋:\t 如果您不希望具有相同的參數名稱,請將此設置爲false。 Web應用程序部署描述符,以覆蓋此處指定的值。默認情況下,允許覆蓋。 –

1

Tarlog解決方案可以解決你的問題,但只有在Eclipse ,如果你從eclipse中刪除你的服務器定義,你就失去了定義,並且每次更改IDE或刪除服務器定義時都需要重新添加它。

所以更好的方法是根據您的環境創建一個shell或bat文件(如runServer.sh/.bat),並將此參數添加到JAVA_OPTS變量中,以便在catalina.sh/.bat正在運行時調用此變量(啓動。 sh/.bat在裏面調用catalina腳本)。您可以在本地,測試和產品環境中使用這種方法。

的Windows:runServer.bat

set JAVA_OPTS="-Dvariable=value" 
tomcat/bin/startup.bat 

的Linux:runServer.sh

export JAVA_OPTS="-Dvariable=value" 
tomcat/bin/startup.sh