2016-12-22 74 views
0

我創建了一個使用POST/Json的基於Restlet的Web服務。RESTLET在部署到服務器時響應時間變得太慢

問題是,當在本地機器上測試時,它的效果非常好。但是,當它被部署在服務器上,它

需要的時候在我的本地開發測試

機得到響應,即使有使用

服務器的資源沒有其他進程超過約10秒。

回答

0

我通過使用Apache HTTP客戶端,而不是從的Restlet

ClientResource解決了這個問題。

我在遠程Linux服務器上測試了同一個基於RESTlet的Web服務的ClientResource和Apache HTTP。前者花了大約10秒,而後者花了不到1秒。我不知道爲什麼。

public class Test 
{ 
public static void main(String [] args) 
{ 

    HttpClient httpClient = HttpClientBuilder.create().build(); //Use this instead 

    try { 
     HttpPost request = new HttpPost("http://hostname:port/testService"); 
     StringEntity params =new StringEntity("{\"key\" : \"value\"}"); 
     request.addHeader("content-type", "application/json"); 
     request.addHeader("Accept", "application/json"); 
     request.setEntity(params); 
     HttpResponse response = httpClient.execute(request); 

     String json_string = EntityUtils.toString(response.getEntity()); 

     System.out.println(json_string); 
    }catch (Exception ex) { 
     // handle exception here 
    } finally { 
     httpClient.getConnectionManager().shutdown(); //Deprecated 
    } 
} 

}