簡體   English   中英

如何從TomCat中運行的Java應用程序中讀取Apache Httpd Env變量?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM