![](/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.