2012-11-28 21 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); 

并返回代理列表。