2017-11-10 3 views
0

Ich habe Controller, der meine benutzerdefinierte Ausnahme auslösen kann.ExceptionHandler entspricht in Guice

public Response fetch(final String id) throws MyException { 
    return Response.ok().entity(custonService.fetch(id)).build(); 
} 

Ich mag diese Ausnahme zu handhaben und setzte Antwortstatus als schlecht Anfrage mit benutzerdefinierter Botschaft, wie sie mit Hilfe von Exception im Frühjahr passieren. Ich habe CheckedProvider gesehen, konnte aber nicht feststellen, wie der Antwortstatus und die Nachricht im Falle einer Ausnahme gesetzt werden.
Gibt es einen Weg, dies zu tun?
Ich bin neu in Guice, bitte helfen.

Antwort

1

Es ist keine Guice Sache. Guice ist nur ein Abhängigkeits-Injection-Framework, es hat nichts mit REST-APIs zu tun. Es sieht so aus, als ob Sie JAX-RS verwenden, was bedeutet, dass Sie den Statuscode und den Hauptteil einer Fehlerreaktion steuern müssen. Sie müssen das von JAX-RS zur Verfügung gestellte System ExceptionMapper verwenden.

In einer separaten Notiz sollten Sie wahrscheinlich kein Response Objekt verwenden. Geben Sie einfach den Wert zurück und es wird automatisch ein 200 OK Statuscode angezeigt.