2014-01-28 33 views
4

有沒有人有運氣試圖用vertx bihind企業代理vertx?我已經嘗試了任何可能的方式來提供代理信息給vertx。目前沒有任何工作。運行在一個代理

組環境變量HTTP_PROXY = http://mycorporate.proxy.com:8080 - 沒有運氣

組環境變量VERTX_OPTS = ' - Dhttp.proxyHost = mycorporate.proxy.com -Dhttp.proxyPort = 8080' - 沒有運氣

組環境變量 http.proxyHost = mycorporate.proxy.com 把http.proxyPort = 8080 沒有運氣

注入額外的回聲到vertx命令,我可以看到代理相關的參數被傳遞到JVM正確,但是仍然需要模塊無法下載(「vertx run hello.js」只是顯然試圖下載io.vertx〜lang-rhino〜2.0.0-final)

代理本身沒問題 - 我用它沒問題對Maven,SBT等不同的東西需要的代理 同一檯筆記本電腦在家中使用能夠成功運行「vertx運行hello.js」與下載io.vertx〜朗犀牛〜2.0.0決賽(第一次運行)

我剛開始對我們公司需要評估vertx,這是我阻礙了我的進一步嘗試做決定非常嗆人的第一點。到目前爲止,我必須遵循下一步驟的解決方法:從1點運行,並得到任何需要在sys-MODS模塊。 2在返回辦公室時手動將模塊上傳到測試服務器上的系統模塊。 顯然,這不是在做任何一個正常的方式。

+0

當我解決這個問題時,我指定了手動代理服務器 - 而不是自動代理服務器。一旦連接,它當時需要調用vert.x一次,每個組件下載之前,它會成功部署verticle。 –

回答

0

設置代理,編輯vertx.bat(如果你使用的是Windows),並添加

set JVM_OPTS=-Dhttp.proxyHost=xxxx -Dhttp.proxyPort=xxxx 
0

我有類似的問題。我發現HttpClient表單不會從JVM_OPTS讀取設置。 所以溶液如下:

編輯您的vertx.bat(SH)

set JVM_OPTS=-Dhttp.proxyHost=xxxx -Dhttp.proxyPort=xxxx 

,然後在有關HttpClient的代碼嘗試某事像這樣

HttpClient client = vertx.createHttpClient(); 
    String proxyHost = System.getProperty("http.proxyHost", "none"); 
    Integer proxyPort = Integer.valueOf(System.getProperty("http.proxyPort", "80")); 

    if(!"none".equalsIgnoreCase(proxyHost)){ 

     client.setHost(proxyHost); 
     client.setPort(proxyPort); 
    } 

,後來在代碼releted到HTTP請求

MultiMap map = new CaseInsensitiveMultiMap(); 
    map.add("Host", domainName); //get domain of REQUESTED_URL     
    client.getNow(REQUESTED_URL, map, new new Handler<HttpClientResponse>(){...}); 
+1

這不起作用,因爲vertx3 http客戶端沒有提到的方法(setHost()和setPort())。 – whitenexx