2016-05-14 55 views
1

我們正在使用Axis 2框架來使用外部服務,因此我們需要通過轉發代理服務器將呼叫路由到該服務。我使用下面的代碼來證明它在實驗室中,但似乎在實際的代理服務器上(這是https://....。)我似乎沒有辦法與Axis 2(ServiceClient)進行交互,它在內部使用CommonsHttpTransportSender與它瞭解被傳遞的主機名將與HTTPS方案一起使用。如何使Axis 2代理服務器屬性知道轉發代理服務器的HTTPS

用CommonHttpTransportSender有沒有更簡單的方法來實現這一點?

Options o = s._getServiceClient().getOptions(); 
HttpTransportProperties.ProxyProperties proxyProperties = new HttpTransportProperties.ProxyProperties(); 
proxyProperties.setProxyName(config.getForwardProxyServer()); 
proxyProperties.setProxyPort(config.getForwardProxyPort()); 
o.setProperty(HTTPConstants.PROXY, proxyProperties); 

回答

0

閱讀Web代理隧道的RFC後,我意識到本身的要求是錯誤的,正向代理通常監聽HTTP協議和簡單方便的客戶端和服務器之間的隧道,如果代理已採取行動因爲在HTTPS上進行偵聽,那麼反向代理更像是一種情況,它不適用於HTTP代理,就像上面最初提到的問題一樣!

CommonsHttpTransportSender內部使用按照RFC使用HTTP代理的Commons HTTP Client 3.1。