2012-11-28 44 views
0

我已經使用現有的WSDL實現了一個Java客戶端。
我可以連接,調用WS方法,一切都很好。
但是....
我應該使用代理進行通信!
設置代理以調用Web服務的方法

已經嘗試過很多方法可以做到這一點,但沒有任何工程:

Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("host",Integer.parseInt("8008"))); 
URL url = new URL(theUrl); 

HttpURLConnection uc = (HttpURLConnection)url.openConnection(proxy); uc.connect();

或者我試圖

System.setPropertry(String, String) 

所以可以設置hostproxyproxySet = true。

但是根據同事們的說法,這不是我應該做的,因爲它設置了全局屬性,並且它不適用於外部系統中的許多單獨運行。

任何想法,我應該這樣做?
讚賞任何幫助,
感謝

回答

0

最後,我用了一個類來擴展java.net.ProxySelector姑且稱之爲MyProxySelector.java
而在實施select()方法,我檢查了URI,如果它是一個URI我要通過代理連接,這是Web服務的URI然後創建一個代理:

SocketAddress addr = new InetSocketAddress(theHost, thePort); 
proxy = new Proxy(Proxy.Type.HTTP, addr); 

它添加到我的代理列表:

List<Proxy> proxyList = new ArrayList<Proxy>(); 
proxyList.add(proxy); 

並返回代理列表。