2013-02-26 62 views
3

部署在WebLogic集羣中我的Java應用程序調用Web服務2這是如下。軸http與軸HTTPS代理設置

•它sents SOAP客戶端請求通過HTTPS。(外部應用程序它是Internet上)通過軸1.4創建的Java類別)

•此後它sents SOAP客戶端請求向內部應用程序(存在的其它節點上,其(通過JAX-WS創建的Java類:Jdeveloper嚮導)

爲了達到第一個WS,我必須使用下面的代碼來設置Web服務客戶端的https代理設置:

System.setProperty("https.proxyHost", myProxyIP); 
System.setProperty("https.proxyPort", myProxyPort); 

雖然第二個Web服務不需要此代理設置,因爲它們已經可以在網絡上訪問。

我的問題是:

如果我所說的第一個服務(一個與代理設置),然後調用其他軸心國客戶端嘗試使用相同的代理服務器設置來調用這些服務,甚至如果我只是之前刪除代理從系統屬性設置我對寫

System.setProperty("http.proxySet", "false"); 
    System.getProperties().remove("http.proxyHost"); 
    System.getProperties().remove("http.proxyPort"); 
    AxisProperties.setProperty("http.proxyHost", null); 
    AxisProperties.setProperty("http.proxyPort", null); 

我讀somwhere使用nonProxyHosts.But我很困惑,如果要我寫

System.setProperty("https.nonProxyHosts","secws.secondwsint.com"); 
到inoke了2ns的WS個

System.setProperty("http.nonProxyHosts","secws.secondwsint.com"); 

HTTP OT HTTPS,因爲需要被繞過一個是HTTP,我們設置代理的一個是HTTPS。

我也看了在博客之一:

AxisProperties.setProperty("https.proxyHost", "bla1.bla1"); 
AxisProperties.setProperty("https.proxyPort", "8080"); 
AxisProperties.setProperty("https.nonProxyHosts", "secws.secondwsint.com"); 

卻又confued wheather使用https.nonProxyHosts或http.nonProxyHosts

哪一個將是最好的我的java程序System.setPropertyAxisProperties.setProperty使用而且重要的是,我應該使用http ot https寫入代碼行 另外,還有其他方法嗎?

+0

您使用的是WLS版本? – Lan 2013-02-26 21:20:57

+0

WLS版本10.6 – Sankalp 2013-02-26 21:25:52

+0

您的意思是10.3.6?沒有10.6。 – Lan 2013-02-26 21:33:26

回答

6

您可以同時使用兩者。但是,System.setProperty()也會影響虛擬機中其他HTTP相關的Java函數,而AxisProperties隻影響Axis WS客戶機。所以我會選擇AxisProperties.setProperty()。

沒有在軸心國problem with http proxy parameters caching mechanism的錯誤。基本上,實現緩存舊的代理設置並且不讀取新的設置。所以即使你使用AxisProperties.setProperty()方法,它仍然不起作用。我不確定它是否適用於Axis 1.4,因爲JIRA不提供受影響的版本號。

我也相信你應該設置http.nonProxyHosts因爲你的內部WS使用HTTP,HTTPS不是。但在另一篇文章中,你提到你設置了兩個,它不起作用。那仍然是這樣嗎?

+0

我想指出的兩件事:我使用Axis 1的外部Web服務。4和內部Web服務我已經使用JAx-WS(通過Jdeveloper)創建了Java類。我在我的問題中糾正了這個問題。在之前的文章中,我使用了System.setProperty ....我沒有嘗試過使用AxisProperties.setProperty ()。 – Sankalp 2013-02-26 21:25:28

+0

請嘗試AxiProperties.setProperty()以查看它是否有效,因爲這僅影響Axis WS客戶端,因此這是推薦的方法。 – Lan 2013-02-26 21:34:27

+0

當然,我會明天早上嘗試,讓你知道。希望它有幫助 – Sankalp 2013-02-26 21:36:35