0
我創建了一個使用POST/Json的基於Restlet的Web服務。RESTLET在部署到服務器時響應時間變得太慢
問題是,當在本地機器上測試時,它的效果非常好。但是,當它被部署在服務器上,它
需要的時候在我的本地開發測試
機得到響應,即使有使用
服務器的資源沒有其他進程超過約10秒。
我創建了一個使用POST/Json的基於Restlet的Web服務。RESTLET在部署到服務器時響應時間變得太慢
問題是,當在本地機器上測試時,它的效果非常好。但是,當它被部署在服務器上,它
需要的時候在我的本地開發測試
機得到響應,即使有使用
服務器的資源沒有其他進程超過約10秒。
我通過使用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
}
}
}