-1
Meine Implementierung von ExceptionMapper
sieht aus wie unten erfassen:Jersey keine Ausnahme
@Provider
public class CaptureUnhandledExceptions implements ExceptionMapper<Throwable>
{
private static final Logger LOGGER = LogFactory.getLogger(CaptureUnhandledExceptions.class);
@Override
public Response toResponse(Throwable exception)
{
LOGGER.error("Unhandled exception", exception);
ErrorMessage em = new ErrorMessage(50099, ExceptionUtils.getRootCause(exception).getMessage(),
exception.getMessage());
return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(em).build();
}
}
In meinem REST api, ich versuche Pass falschen Wert für meine JSON
Körper, aber es wirft folgende Ausnahme
Can not deserialize value of type com.abccompany.model.ConnectionEndpoint$Binding from String "RandomValue: value not one of declared Enum instance names: [POST, REDIRECT]
at [Source: org.glassfish.jersey.me[email protected]3fce79f3; line: 16, column: 28] (through reference chain: com.abccompany.model.SpConnection["connection"]->com.abccompany.model.Connection["connectionendpoints"]->java.util.ArrayList[0]->com.abccompany.model.ConnectionEndpoint["endpointbinding"])
was fehlt mir? Muss ich meinen Provider unter ResourceConfig
registrieren?
In ResourceConfig Anwendungs
this.register(com.abccompany.utils.CaptureUnhandledExceptions.class);
Sie die "Nicht behandelte Ausnahme" gesehen hinzufügen Haben in Ihrer Protokolldatei? Sie müssen Ihre benutzerdefinierte Ausnahmehandlerklasse nicht registrieren. – zappee
Nein ... Ich habe das getan, nur um sicherzugehen, dass ich nichts verpasst habe. – yogsma
Versuchen Sie, eine neue Exception ("say something ...") bewusst in Ihre Ruhemethode zu werfen, um zu sehen, was passieren wird. – zappee