Ich bin mit Feder mit @ResponseStatus
eine Ausnahme so werfen:Format ändern Zeitstempel Ausnahme Frühling
@ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "Unknown task")
public class TaskNotFoundException extends RuntimeException {
private static final long serialVersionUID = 1L;
private long taskId;
public TaskNotFoundException(long taskId) {
this.taskId = taskId;
}
public long getTaskId() {
return taskId;
}
}
ich diese Art erhalten von Antwort:
{
"timestamp": 1467278537988,
"status": 404,
"error": "Not Found",
"exception": "com.TaskNotFoundException",
"message": "Unknown Task"
}
Ich würde gerne wissen, wie um das Zeitstempelformat zu ändern, um ISO 8601-Format zu haben. Danke für Ihre Hilfe
Ich habe immer noch ein Problem. Der Response-Header enthält den http-Status '@ResponseStatus (HttpStatus.OK)' meines '@ RequestMapping'. Wenn ich "ResponseStatus" zu "@ExceptionHandler (TaskNotFoundException.class)" hinzufüge, wird die alte Spring JSON-Antwort angezeigt. – ahbon
Ich bin mir nicht sicher, dass Ihre eigentliche Ursache ist, da '@ResponseStatus (HttpStatus.OK)' nur dann 'OK' zurückgibt, wenn die Bearbeitungsmethode normal zurückkehrt. Wenn der Handler eine Ausnahme auslöst, trifft die Annotation nicht zu. Ich denke, Sie können 'ResponseEntity' in Ihrem Ausnahmebehandler versuchen und explizit den HTTP-Status in 'ResponseEntity' setzen. –
Wilson
Ich habe es endlich herausgefunden. Ich musste das "Grund" -Attribut in meinem '@ ResponseStatus' – ahbon