![](/img/trans.png)
[英]How to migrate a java application running in Apache Tomcat 5 to Apache Tomcat 7?
[英]How can I read Apache Httpd Env variables from a Java application running in TomCat?
我在Apache Httpd后面的TomCat容器中運行了幾個Java應用程序。 在Apache Httdp中,如果安裝了mod_env,則可以使用SetEnv SetEnv FOO bar
設置Env變量。 如何在TomCat中運行的Java應用程序中讀取這些變量? Java應用程序主要使用Stripes構建,如果有幫助的話。
因為Tomcat是在Apache之外啟動的,所以它無法訪問Apache環境。 這意味着您需要一些方法將環境變量從Apache傳遞到Tomcat。
如果使用mod_jk
連接Apache和Tomcat,則可以使用JkEnvVar
指令將特定變量傳遞給Tomcat。 從mod_jk文檔 :
指令
JkEnvVar
允許您將環境變量從Apache服務器轉發到Tomcat引擎。 您可以將默認值作為第二個參數添加到指令中。 如果沒有顯式給出默認值,則只有在運行時設置變量時才會發送變量。 可以通過request.getAttribute(attributeName)
在Tomcat端檢索變量作為請求屬性。 請注意,通過JkEnvVar
發送的變量不會列在request.getAttributeNames()
。
如果您使用的是HTTP代理( mod_proxy
)而不是mod_jk
,則可以使用mod_headers
將環境變量作為請求標頭mod_headers
,例如:
RequestHeader set X-MYVAR %{MYVAR}e
...然后在Tomcat中你必須提取X-MYVAR
標題。
此外,如果您通過AJP使用模塊代理,即mod_proxy_ajp
,根據文檔 :
名稱前綴為AJP_的環境變量將作為AJP請求屬性(從密鑰名稱中刪除AJP_前綴)轉發到源服務器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.