2017-10-10 2 views
-1

Ich verwende Jax-RS als meine REST Rahmen. Ich möchte in der Lage sein, die Fehlermeldung von dem Restanruf herauszuziehen, wenn es fehlschlägt (d. H. Mit einem Fehler von 500). Was ist der beste Weg?Jax-RS: Fehlermeldung vom REST-Aufruf erhalten?

z. wenn ich meinen Ruf in POSTMAN und bekommen einen Fehler machen ich folgendes mit der 500 erhalten:

{ 
    "reason": "No data retrieved for GET call", 
    "response": "failure" 
} 

Wie kann ich diese Informationen in meinem Code abrufen in dem Fall, dass der Aufruf fehlschlägt?

+0

was meinst du, wie Sie die abrufen Code? Parsen Sie den JSON und lesen Sie den Grund? – Optional

+0

Ich bekomme einen 500 Fehler vorher, ich werde meine Frage jetzt bearbeiten – java123999

+0

Bitte bearbeiten und post Probe auch. – Optional

Antwort

1

Wenn das, was Sie suchen, das zu analysieren ist:

Diese Antwort in einem Textformat namens JSON (JavaScript Object Notation)

Verwenden Sie eine JSON Parsing-Bibliothek wie GSON

String json = //..... get the api response as a String .... 
APIResponse response = new Gson().fromJson(json, APIResponse.class); 

eine ApiResponse Verwendung suchen, wie:

public class APIResponse { 

    public String reason; 
    public String response; 

    public void setReason(String reason) { 
     this.reason = reason; 
    } 

    public String getReason() { 
     return this.reason; 
    } 

    public void setReason(String reason) { 
     this.response = response; 
    } 

    public String getResponse() { 
     return this.response; 
    } 
} 

Auf der anderen Seite, wenn das ist die Antwort von Ihrem API kommen und Sie schauen, um es zu behandeln: haben Sie einen Blick auf JAX-RS Exception Handling

Sie können implementieren die ExceptionMapper Schnittstelle:

public interface ExceptionMapper<E extends Throwable> { 
    Response toResponse(E exception); 
} 

und registrieren Sie eine @Provider, die die Ausnahme behandelt:

@Provider 
public class EntityNotFoundMapper implements ExceptionMapper<Exception> { 

    public Response toResponse(Exception e) { 
     // Do some logic like log an error 
     return Response.status(Response.Status.NOT_FOUND).build(); 
    } 
} 
Verwandte Themen