Ich habe einen Jersey-Client und möchte versuchen, versuchen erneut auf SocketTimeoutException
, die der Fehler ist, den ich auf dem Serverprotokoll sehe. Das Code-Skelett ist unten. webtarget
ist eine javax.ws.rs.client.WebTarget
Instanz, deren URL-Pfad und Abfrageparameter bereits definiert sind. Das Problem, mit dem ich konfrontiert bin, ist, dass webtarget.request.get()
niemals eine SocketTimeoutException auslöst, so dass ich diese Ausnahme nicht wirklich abfangen kann. Irgendwelche Gedanken, wie ich den Versuch tatsächlich durchführen kann?Java-Jersey-Wiederholungsanfrage auf SocketTimeoutException
int i = 0;
Response response;
while (true) {
try {
response = webtarget.request().get();
break;
} catch (SocketTimeoutException e){
if (i < retryNumber) {
i++;
} else {
// throws some exception
}
}
}
nicht möchten Sie das Client-Timeout für eine Anforderung erhöhen, um die Socket-Timeout-Ausnahme an erster Stelle zu vermeiden. –