2012-07-06 53 views
1

我在Java源代碼中配置了代理爲:問題,同時連接到遠程的WebLogic Server在代理

systemSettings.put("http.proxyHost", "www.proxyserver.com"); 
systemSettings.put("http.proxyPort", "8080"); 
systemSettings.put("http.nonProxyHosts", "10.x.y.z"); 

這裏10.x.y.z是我的WebLogic服務器的實際IP。 但每當代碼試圖連接到WebLogic Server中,我收到錯誤爲:java.net.ConnectException:T3:

所致//10.x.y.z:7001:目標 可達;嵌套的異常是:java.net.ProtocolException: 來自代理的無法識別的響應:'HTTP/1.0 403 Forbidden';沒有 可利用的路由器到目的地在 weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:216)在 weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:170)在 weblogic.rjvm.ServerURL.findOrCreateRJVM(SERVERURL。 Java的:153)在 weblogic.jndi.WLInitialContextFactoryDe​​legate $ 1.run(WLInitialContextFactoryDe​​legate.java:345) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363) 在 weblogic.security.service .SecurityManager.runAs(SecurityManager.java:146) at weblogic.jndi.WLInitialContextFactoryDe​​legate.getInitialContext(WLInitialContextFactoryDe​​legate.java:340)

看來,設置http.nonProxyHosts不按預期工作。我試圖通過互聯網找到解決方案,但其中大多數都表示刪除代理設置。我無法刪除代理,因爲我的代碼嘗試連接到某些Internet URL。另請注意,weblogic服務器位於遠程計算機上。 你能給我一個提示,這裏有什麼問題?

+0

您是否也在系統級設置了代理設置? – Arcadien 2012-07-06 08:20:07

+0

我也試過 System.setProperty(「http.proxyHost」,「www.proxyserver.com」); System.setProperty(「http.proxyPort」,「8080」); System.setProperty(「http.nonProxyHosts」,「10.x.y.z」); 但仍然沒有運氣。 – user613114 2012-07-06 08:31:32

+0

我要求,因爲我有各種不同嘗試後「拖尾」多個代理設置的問題。有時很難知道哪個參數優先。您使用哪個HTTP庫來連接您的weblogic? – Arcadien 2012-07-06 08:35:23

回答

0

我解決了這個問題。在與weblogic建立連接時,我最初設置了代理。所以由於一些網絡限制,我認爲它沒有工作。在修改後的代碼,我使用的相同的3條線設置代理:

System.setProperty("java.net.useSystemProxies", "false"); 
System.setProperty("http.proxyHost", "www.proxyserver.com"); 
System.setProperty("http.proxyPort", "8080"); 

唯一的區別是,我做到了在地方,我需要確切位置。所以對於初始連接設置與weblogic代理不會被使用。我也沒有繞過,weblogic服務器URL不使用代理。

@Arcadien:謝謝你的努力來幫助我。謝謝。

2

看看this OTN thread

從3日評論:

  1. 要設置nonProxyHosts,不存在作爲系統屬性,通過System.setProperties()。

我沒有看過所有,到目前爲止,但似乎system.properties不設置 nonProxyHosts的便捷方式。

你是否試圖從命令行設置它?

-Dhttp.nonProxyHosts="*.foo.com|localhost". 
+0

感謝Arcadien爲您解答。但是我在oracle網站上發現,它是繞過某些服務器代理的有效方法。對於鏈接「http.nonProxyHosts:應該直接到達的主機列表,繞過代理,這是一個由'|'分隔的模式列表,模式可以以'*'開頭或結尾爲通配符,任何主機匹配其中一種模式將通過直接連接而不是通過代理來實現。「鏈接:http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html – user613114 2012-07-06 09:19:37

+0

你好Arcadien,我在VM參數裏試過了-Dhttp.nonProxyHosts =「10.x.y.z」。它不起作用。我甚至在一些線程中提到過--Dhttp.nonProxyHosts = 10.x.y.z。但是這也沒有奏效。我非常感謝你的努力和時間來幫助我。我現在也是空白,無法找到確切的問題。 – user613114 2012-07-06 09:34:30

+0

呵呵:) doc討論這個參數。但它曾經是「noProxyHosts」和一次「nonProxyHosts」;)所以用「noProxyHosts」的測試也可能是有用的 – Arcadien 2012-07-06 09:35:55