2009-08-14 4 views
0

Hier einige Code:Wie funktioniert das Timeout in der Client-Klasse von Restlet?

Client client = new Client(Protocol.HTTP); 
client.setConnectTimeout(1); //milliseconds 
Response response = client.post(url, paramRepresentation); 
System.out.println("timed out"); 

Was würde ich passieren erwarten, ist, dass es druckt „timed out“, bevor die Ressource Zeit zu verarbeiten hat. Stattdessen passiert nichts mit der Zeitüberschreitung und es wird nicht "Zeitüberschreitung" ausgegeben, bis die Ressource zurückkehrt. Selbst wenn ich eine Thread.sleep (5000) auf die Ressource setze, die die Anfrage bearbeitet, wird der gesamte Schlaf ausgeführt, so wie das Timeout nichts getan hat.

Hat jemand Erfahrung damit? Ich benutze Restlet 1.1.1. Vielen Dank.

Antwort

0

Ein paar Dinge zu versuchen:

  1. Upgrade auf Restlet 1.1.5, die neueste Version. Wenn dies ein Fehler in der Client-Klasse oder in dem Connector ist, den Sie verwenden, wurde möglicherweise ein Fehler behoben. (Wenn Ihre App in absehbarer Zeit nicht in Produktion geht, möchten Sie vielleicht die neueste Version 2.0 von Preview ausprobieren.)
  2. Versuchen Sie es mit einem anderen Client-Connector. Vor allem, wenn Sie den integrierten Anschluss verwenden - es ist wirklich nur für die gelegentliche Entwicklung gedacht.
  3. Versuchen Sie, auf der Mailing-Liste zu fragen. Die Entwickler sind sehr hilfsbereit und reagieren dort.
0

Seine Open Source und der Code ist ziemlich sauber, ich habe es vorher für andere Dinge angeschaut. Warum nicht einen Blick darauf werfen?