2012-09-11 80 views
1

這可能是一個愚蠢的問題:Tomcat替換VM參數

我目前有一些虛擬機參數,我的web應用程序需要。他們是這樣的:

-Dcom.company.custom.var='test' 

我訪問這些代碼:

System.getProperty("com.company.custom.config") 

我想將它們移入(Tomcat的XML文件中的一個server.xml中的context.xml等)但我不確定我會如何去做這件事。

所以我的問題是兩部分。我應該在哪裏(以及如何)將這些變量放入xml中,以及如何在代碼中訪問它們?

如果已經得到解答,請提前致謝,並對不起。我在這個話題上的搜索已經失敗了。

回答

1

據官方統計,所有JVM選項去要麼setenv.sh(對於Unix)或setenv.bat(適用於Windows)。這個文件在Tomcat中爲is not present by default,但如果你創建了一個,它將被啓動腳本拾取。

您應該使用此代替server.xml的原因是server.xml可能會從一個Tomcat版本更改爲另一個,但setenv.sh(或.bat)完全是您自定義的。

正如您所指出的,通過System.getProperty(...)讀取此值。

+0

謝謝!我會考慮這樣做。 – codeflayer

2

如果這些是特定於應用程序的配置項目,則其標準位置爲,web.xml。例如:

<context-param> 
    <param-name>myvar</param-name> 
    <param-value>value</param-value> 
</context-param> 

您可以使用ServletContext#getInitParameter(String)從代碼中訪問這些值。從servlet裏面,你可以寫這樣的:

String myvar = getServletContext().getInitParameter("myvar"); 
+0

感謝您的回答。它們不是應用程序特定的。我可以把它們放在tomcat/conf/web.xml中嗎? – codeflayer

+1

我認爲這將起作用。測試確認。 – Asaph

+0

我會試試看。如果它有效,我會標記你的答案是正確的。感謝您的快速回復。 – codeflayer