簡體   English   中英

獲取java.net.ConnectException:連接被拒絕

[英]Getting java.net.ConnectException : Connection refused

我為此尋找了SO的解決方案,但它們似乎都不適用於我的情況。 所以這里是:我有一個應用程序,需要對第三方域進行服務調用。 我正在使用澤西客戶端來打電話。 撥打電話的代碼是

ClientResponse resp = resourceWithParams.
                      header("Authorization", getAccessKeyId() + ":" +
                      hmacSha1.toUpperCase()).
                      post(ClientResponse.class,"");

其中resourceWithParams是澤西網絡資源。 請注意,即使它是POST ,Web服務也需要查詢字符串和空體。 它可能是有問題的設計,但這是我們必須合作的。

此設置在我的本地計算機以及我們的preprod服務器上運行正常。 但是在我們的生產服務器上它給出了一個例外

com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused

下面有幾點可能有助於我指出正確的方向:

1)當我們在prod服務器命令行上使用curl向Web服務發送請求時,我們得到了有效的響應,所以看起來好像沒有防火牆問題。 只有當我們通過Web應用程序嘗試它時才會發生這種情況,即通過使用jersey客戶端的java代碼。

2)prod服務器上沒有設置代理

3)從localhost工作正常。

4)Rest Web服務使用https並且在我們的服務器上安裝了正確的證書,這可以通過在prod上curl web服務工作得到證明。

關於問題可能是什么以及我們應該從哪里開始尋找的任何想法?

編輯:

如前所述,我們使用https連接到Web服務。 如果我們使用http代替它,它似乎確實有效。

我建議你設置一個tcpdump會話來查看拒絕連接的來源。 特別是,請查看成功連接和不成功連接的源IP和目標IP地址。

以上兩種可能性旨在測試:

  1. 您說您沒有使用代理服務器,但Java實際上與系統的其余部分具有單獨的代理配置,因此可能是您的Java配置為使用非功能性代理服務器。
  2. 您的Java系統可能正在使用與您的curl正在使用的源IP地址不同的源IP地址發送請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM