1. 程式人生 > >Restlet 客戶端連線超時問題解決

Restlet 客戶端連線超時問題解決

使用Restlet進行同步請求,有時可能處理的時間會很長所以需要客戶端進行較長時間的等待。從API中查得客戶端的設定方式如下:

ClientResource client = new ClientResource(new Context(), uri);
client.setRetryAttempts(0);
client.setProtocol(protocol);
client.getContext().getParameters().add("socketTimeout", "60000");

不過,設定後,OneCoder經測試卻發現無效。無論socketTimeout設定為多少。均會在1分鐘左右超時。

這好像是由於Restlet預設使用的是一個簡單的http服務,而在現在版本中,Restlet提供了很多增強的擴充套件。其中一個是ext.jetty擴充套件。即以jetty伺服器做服務,啟動Rest服務。使用方式很簡單,無需修改原有程式碼,只需增加ext.jetty的依賴即可。

 <dependency>
  <groupId>org.restlet.jse</groupId>
  <artifactId>org.restlet.ext.jetty</artifactId>
  <version>2.1.2</version>
</dependency>

再次測試,有效。

值得一提的是,Restlet提供了很多擴充套件包。會對預設的Restlet服務進行很多增強。