2013-10-23 26 views
8

Von com.sun.jersey.api.client.Client bis javax.ws.rs.client.Client Wie konfiguriere ich Client?javax.ws.rs.client.Client Wie konfiguriert man ReadTimeOut?

AB:

import com.sun.jersey.api.client.Client; 

Client client = Client.create(); 
client.setReadTimeout(1000 * 60 * 20); 
client.setConnectTimeout(1000 * 20); 
webResource = client.resource("someWhereOverTheRainbow"); 
..etc. 

TO:

import javax.ws.rs.client.*; 

Client client = ClientBuilder.newClient(); 
// **now what?** client.getConfiguration().getProperties().put("isThisTheWayToDoIt", 1000 * 60 * 2); 

WebTarget target = client.target("someWhereOverTheRainbow"); 
..etc. 

I javax.ws.rs-api-2.0.jar

Antwort

15

bin mit Ich nehme an, Sie JAX-RS-ri verwenden. Dazu können Sie ClientProperties.CONNECT_TIMEOUT und ClientProperties.READ_TIMEOUT verwenden.

Beispiel:

ClientConfig configuration = new ClientConfig(); 
configuration = configuration.property(ClientProperties.CONNECT_TIMEOUT, 1000); 
configuration = configuration.property(ClientProperties.READ_TIMEOUT, 1000); 
Client client = ClientBuilder.newClient(configuration); 
WebTarget target = client.target(
     "http://developer.github.com/v3/"); 
String content = target.request().get(String.class); 
System.out.println(content); 

EDIT:

ich das API Dokument für ClientConfig.property lesen. Und @Gili hat Recht.

+1

'ClientConfig' kann unveränderlich sein. Daher wird 'configuration.property()' nicht garantiert, 'this' zurückzugeben. Es liegt in Ihrer Verantwortung, das Ergebnis wieder auf "Konfiguration" zu legen, oder Sie riskieren, dass die Eigenschaft verloren geht. – Gili

+0

@Gili Vielen Dank für den Hinweis auf meinen Fehler. – longhua

+2

ist ClientConfig und ClientProperties nicht Jersey spezifischen Klassen? Ich denke, Frage fragt generische Art der Einstellung der Verbindung Timeout und Lese-Timeout durch JAX-RS-API –

Verwandte Themen