2012-03-21 35 views
0

我一直在嘗試一整天讓Tomcat6使用系統代理設置。想盡各種辦法,的Tomcat 6.0.35 Windows 32b服務使用系統代理

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

約200個不同版本的我試過這樣的「安裝」一節中設置該屬性在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投入自動運行。

所以......有沒有人得到這個工作?還是有人有想法/建議?

+0

您是否對您的代理進行了身份驗證?這是出站連接,對嗎? – 2012-03-21 17:01:32

+0

@BGR是的,它用於出站連接。沒有認證。我正在打印找到的代理。作爲一項服務,它始終是直接的。如果我從.bat運行它,它會正確使用系統代理。 – annih 2012-03-22 11:03:42

回答

3

假設這是在Windows上,我發現了一個註冊表項下:

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

的項被命名爲REG_MULTI_SZOptions。這包含所有-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 
+0

很好的回答。無法驗證它的工作原理,因爲我轉移到另一家公司。我相信這可能是解決方案,所以我會接受它。再次感謝! – annih 2012-11-15 14:01:06

+0

這幫助我找到了一個解決方案 - 就我而言,我運行了多個Tomcat服務器。在其中的任何一箇中使用「tomcat6w.exe」更新了「Tomcat6」安裝的註冊表項。我的竅門是重命名'exe'文件,然後在重新安裝服務之前更新'service.cmd'中的相應引用。 – ZaLiTHkA 2016-06-29 09:50:40

相關問題