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

mar*_*ark 4 java windows tomcat

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

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

我的问题是,我已经尝试了以上所有内容,我的网络应用程序仍然没有看到我的系统属性!

这是我在做的事情:

  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不在其中

请让我摆脱痛苦,告诉我该怎么做.

pru*_*nge 10

对于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下运行.