【问题标题】:Tomcat 6.0.35 Windows 32b Service useSystemProxiesTomcat 6.0.35 Windows 32b 服务使用SystemProxies
【发布时间】:2012-03-21 16:46:34
【问题描述】:

我一整天都在尝试让 Tomcat6 使用系统代理设置。尝试了各种方法,大约 200 个不同的版本

tomcat6 //US/Tomcat6 ++JvmOptions "-Djava.net.useSystemProxies=true"

我尝试在“安装”部分中设置service.bat 中的属性,如下所示(还有许多类似的版本):

...
:foundJvm
echo Using JVM:              "%PR_JVM%"
"%EXECUTABLE%" //IS//%SERVICE_NAME% --StartClass org.apache.catalina.startup.Bootstrap --StopClass org.apache.catalina.startup.Bootstrap --StartParams start --StopParams stop --JvmOptions "-Djava.net.useSystemProxies=true"

我尝试使用 tomcat6w GUI 进行设置。不确定它是否有任何作用。

还尝试将JAVA_HOME 设置为 JRE 和 JDK。没有区别。

尝试设置-Dhttp.proxyHost=proxyhostURL-Dhttp.proxyPort=proxyPortNumber。这些至少似乎不会被忽略,因为连接失败(使用随机本地 ip 和端口)。

现在有趣的事实是:我可以通过catalina.bat 运行它,在那里设置参数 (CATALINA_OPTS=...),它就像一个魅力。那它在那里做什么?我希望将它作为一种对用户更友好的服务,但如果没有办法实现它,我愿意考虑将catalina.bat 扔到自动运行中。

那么...有没有人得到这个工作?或者有没有人有想法/建议?

【问题讨论】:

  • 您的代理有身份验证吗?这是用于出站连接,对吗?
  • @BGR 是的,它用于出站连接。没有认证。我正在打印找到的代理。作为一项服务,它总是直接的。如果我从 .bat 运行它,它会正确使用系统代理。

标签: java windows windows-services tomcat6 http-proxy


【解决方案1】:

假设这是在 Windows 上,我在以下位置找到了一个注册表项:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\<app-name>\Parameters\Java

条目名为Options,类型为REG_MULTI_SZ。这包含所有 -D JVM 选项,每个选项一行。我添加了我们的 HTTP/HTTPS 代理名称(我们使用的是 NTLM 身份验证代理)

-Dhttp.proxyHost=proxy.company.local
-Dhttp.proxyPort=8080
-Dhttps.proxyHost=proxy.company.local
-Dhttps.proxyPort=8080
-Dhttp.proxyUser=svc_account
-Dhttp.proxyPassword=svc_Password

【讨论】:

  • 很好的答案。但无法验证它是否有效,因为我转到了另一家公司。我相信这可能是解决方案,所以我会接受它。再次感谢!
  • 这帮助我找到了解决方案——在我的例子中,我运行了多个 Tomcat 服务器。在其中任何一个中使用tomcat6w.exe 正在更新“Tomcat6”安装的注册表项。对我来说,诀窍是重命名 exe 文件,然后在重新安装服务之前更新 service.cmd 中的相应引用。
猜你喜欢
  • 2017-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-03
  • 1970-01-01
  • 1970-01-01
  • 2016-12-30
相关资源
最近更新 更多