2016-12-22 1 views
0

Ich erstellte einen Restlet-basierten Webdienst, der POST/Json verwendet.RESTLET Antwortzeit wird zu langsam, wenn in Server

Problem ist, dass, wenn es auf dem lokalen Rechner zu testen,

es sehr gut funktioniert. Aber wenn es auf einem Server bereitgestellt wird, es

dauert ca. 10 Sekunden mehr, als wenn

auf meiner lokalen Entwicklung getestet

Maschine Antwort zu bekommen, auch wenn es keine andere Prozesse ist mit

der Ressourcen des Servers.

Antwort

0

löste ich das Problem von Apache HTTP-Client statt

ClientResource von Restlet.

Ich habe sowohl ClientResource als auch Apache HTTP für den gleichen RESTlet-basierten Webdienst auf einem fernen Linux-Server getestet. Ersteres dauerte etwa 10 Sekunden und letzteres weniger als 1 Sekunde. Und ich weiß nicht warum.

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 
    } 
} 

}