Ich verwende JAX-RS-Client, um REST-API zu konsumieren. Ich wollte nicht zulassen, dass JAX-RS eine Reihe von Ausnahmen auslöst, also untersuche ich selbst das Objekt Response
. Manchmal aber interessiere ich mich nur über bestimmte Statuscodes und ich möchte JAX-RS zu auf Standardverhalten zurückfallen und eine tatsächliche Ausnahme werfen (die von einem AOP-Ratschlag behandelt wird). Gibt es eine einfache Möglichkeit, dies zu tun?JAX-RS: Antwort auf Ausnahme konvertieren
public void delete(long id) {
Response response = client.delete(id);
Response.Status status = Response.Status.fromStatusCode(response.getStatus());
if (status == Response.Status.OK) {
return;
}
if (status == Response.Status.NOT_FOUND) {
throw new TeamNotFoundException();
}
if (status == Response.Status.CONFLICT) {
throw new TeamHasAssignedUsersException();
}
// if status was internal server error or something similar,
// throw whatever exception you would throw at first place
// magic.throwException(response)
}
Wenn Sie nicht Response-Objekt von JAX-RS-API bekommen, wird es Haufen von Ausnahmen wie BadRequestException, ClientErrorException usw. werfen Aber Ich mag nicht meine Business-Logik mit Ausnahmen fahren – Xorty
Sie meinen, wenn Sie machen eine Anfrage mit einer TypeEntity wie 'client.get (Customer.class)', dann bekommst du diese Ausnahmen, und ansonsten wenn du direkt mit einer 'Response' arbeitest - nicht? –
Ja, das ist es ... – Xorty