我正在使用Jersey 2.25
客戶端與Jackson
,我在澤西配置一切正常,它在我的開發機器上正常工作,當我在測試類中運行它,但澤西客戶端永遠不會連接到部署在我們的STG環境中的特定主機,並且始終引發讀取超時異常。澤西客戶端給讀超時,但Apache HTTP客戶端正常連接
我也知道,這個問題是不是在我們的環境,因爲我可以連接使用curl
但是當切換到它的HTTPClient工作正常。
這是我們如何創造我們的Jersey客戶端:
Client client = ClientBuilder.newBuilder()
.register(JacksonFeature.class)
.property(ClientProperties.CONNECT_TIMEOUT,5000)
.property(ClientProperties.READ_TIMEOUT,15000)
.build();
這裏唯一的不同是應用程序的流程,也是發生在流動的重大變化,可能影響連接,即在什麼地方調用Jersey客戶端另一個類在系統中設置配置代理:
System.setProperty("http.proxyHost",strProxyHost);
System.setProperty("http.proxyPort",strProxyPort);
System.setProperty("https.proxyHost",strProxyHost);
System.setProperty("https.proxyPort",strProxyPort);
但是,我們可以建立連接正常使用了HTTPClient:
HttpConnectionManagerParams params = new HttpConnectionManagerParams();
params.setConnectionTimeout(5000);
params.setSoTimeout(10000);
HttpConnectionManager manager = new SimpleHttpConnectionManager();
manager.setParams(params);
HttpClient httpClient = new HttpClient(manager);
我們使用HTTPClient 3,因爲這個應用程序的一部分是遺留的,我們無法更新版本,但它正常工作。
什麼可能導致與澤西島的這種連接問題?當澤西試圖連接時,它有什麼全球性的東西?
我們可以重寫這個嗎? – engma