![](/img/trans.png)
[英]Getting java.net.ConnectException: Connection refused: connect in eclipse
[英]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地址。
以上兩種可能性旨在測試:
curl
正在使用的源IP地址不同的源IP地址發送請求。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.