2016-10-14 56 views
0

我在Oracle MAF中使用RestServiceAdapter來調用Restfull Services,我想爲服務設置一個超時時間,這是由於我在有網絡連接時出現問題(例如:低信號,連接錯誤的接入點等),所以應用程序變得奇怪,它試圖做出請求,然後以奇怪的行爲掛出。如何在Oracle MAF中設置RestServiceAdapter的超時時間?

這是我的代碼,它工作的很好,但我會拋出一個異常,如果它花費的時間超過一些X秒。

public String getJSONResponse(String baseUrlService) throws Exception { 
    try { 
     RestServiceAdapter restServiceAdapter = RestServiceAdapterFactory.newFactory().createMcsRestServiceAdapter(); 
     restServiceAdapter.clearRequestProperties(); 
     restServiceAdapter.setConnectionName(REST_STORE_CONNECTION); 
     restServiceAdapter.setRequestURI(baseUrlService);  
     restServiceAdapter.setRequestMethod("GET"); 

     //Base 64 de Autenticacion de Weblogic real usuario 'Basic store-rest-user:password' 
     restServiceAdapter.addRequestProperty("Authorization", "Basic " + loginBase64); 
     //restServiceAdapter.setRequestType(RestServiceAdapter.REQUEST_TYPE_GET); 
     String response = restServiceAdapter.send(""); 
     return response; 
    } catch(Exception e) { 
     throw new Exception("Error: problema de conexión o problema en servidor"); 
    } 
} 

回答

1

據我所知,在RestServiceAdapter中沒有選項來超時連接。但是您可以配置重試連接的頻率。因此,最佳做法似乎是將重試限制設置爲1,然後使用RestServiceAdapter從後臺線程訪問遠程服務。

+0

謝謝,實際上我試圖發送一個後臺服務,並使用Executors超時,我想我實現了一些東西,但是做一些簡單的事情變得越來越複雜。我會嘗試你所說的。 –

+0

如果您發現它是正確的,請提出答案。這對其他人很有用 –

+0

我認爲它很有用,但它不能解決需要超時的請求 –

相關問題