一尘不染

如何将系统属性传递给以Windows Service运行的Tomcat 7中托管的Web应用程序?

tomcat

互联网上有很多地方,这表明可以通过以下任何(或全部)方法轻松实现:

  1. 通过 CATALINA_OPTS
  2. 通过 JAVA_OPTS
  3. 通过 TOMCAT_OPTS
  4. 通过将set语句放置在tomcat的bin文件夹内的 setenv.bat 文件中

我的问题是,我已经尝试了以上所有方法,但是我的Web应用程序仍然看不到我的系统属性!

这是我在做什么:

  1. 停止tomcat7服务
  2. CATALINA_OPTS=-Dabc.def=true在系统环境中设置
  3. JAVA_OPTS=-Dabc.def=true在系统环境中设置
  4. TOMCAT_OPTS=-Dabc.def=true在系统环境中设置
  5. 将以上所有内容放入 c:\ Program Files \ Apache Software Foundation \ Tomcat 7.0 \ bin \ setenv.bat (似乎完全多余,但以防万一)
  6. 启动tomcat7服务
  7. 使用Process Explorer工具检查tomcat7进程的环境-环境是正确的,我也看到两个CATALINA_OPTSJAVA_OPTSTOMCAT_OPTS等于-Dabc.def=true
  8. 运行我的Web应用程序,这是一个简单的Servlet,将所有系统属性都转储到响应流中- abc.def 不在其中

拜托,让我摆脱痛苦,告诉我该怎么做。


阅读 178

收藏
2020-06-16

共1个答案

一尘不染

对于Tomcat服务,启动设置存储在注册表中注册表项下的以下Options位置:

HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Procrun 2.0\Tomcat<X>\Parameters\Java

(在需要的地方替换适当的Tomcat版本)。

编辑:

在64位Windows上,注册表项是:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat<X>\Parameters\Java

即使Tomcat在64位JVM下运行。

2020-06-16