Sie können auch ein Timeout pro Anfrage angeben:
public static void main(String[] args) {
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://1.2.3.4:8080");
// default timeout value for all requests
client.property(ClientProperties.CONNECT_TIMEOUT, 1000);
client.property(ClientProperties.READ_TIMEOUT, 1000);
try {
Invocation.Builder request = target.request();
// overriden timeout value for this request
request.property(ClientProperties.CONNECT_TIMEOUT, 500);
request.property(ClientProperties.READ_TIMEOUT, 500);
String responseMsg = request.get(String.class);
System.out.println("responseMsg: " + responseMsg);
} catch (ProcessingException pe) {
pe.printStackTrace();
}
}
Ich bezweifle, dass das funktioniert. .property (...) gibt eine Client-Instanz (Builder-Muster) zurück. Die Einstellungen werden beim Aufruf von .target() nicht verwendet. – mkuff
Eigentlich funktioniert es. Das Builder-Muster sagt nicht, dass eine andere Instanz erstellt werden soll. Schauen Sie sich einfach den Quellcode an, der Rückgabewert ist der eigentliche Client (nur um spätere Aufrufe zu erleichtern). –