Ich habe ein Problem, bei dem eine Fehlermeldung angezeigt wird, wenn eine fehlerhafte Anforderung ausgelöst wird.
@DeleteMapping("/{projectId}/bugs/{bugId}")
public void deleteBug(@PathVariable (value = "projectId") Long projectId,
@PathVariable (value = "bugId") Long bugId){
if (!projectService.existById(projectId) || !bugService.existById(bugId)) {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "ProjectId " + projectId + " or BugId " + bugId + " not found");
}
bugService.deleteBug(bugId);
}
Dies ist die JSON-Antwort, wenn ich die Antwort auslöse:
{
"timestamp": "2020-05-29T15:40:41.302+00:00",
"status": 400,
"error": "Bad Request",
"message": "",
"path": "/projects/3/bugs/2" }
Wie Sie sehen, wird die Nachricht nicht angezeigt. Wenn ich den HttpStatus im Code ändere, funktioniert er tatsächlich, aber aus irgendeinem Grund funktioniert die Nachricht nicht.
Ich habe den Konstruktor der Klasse überprüft und er lässt tatsächlich nur den Status und den Grund zu.
Vermisse ich etwas oder ist es ein Fehler in der ResponseStatusException-Klasse?
Ich bin auch darauf gestoßen. Es ist kein Fehler, daher ist ein Downgrade nicht die beste Lösung. In den Versionshinweisen zu Spring Boot 2.3.0 wird Folgendes erläutert:
Änderungen am Inhalt der Standardfehlerseite
Die Fehlermeldung und etwaige Bindungsfehler sind standardmäßig nicht mehr auf der Standardfehlerseite enthalten. Dies verringert das Risiko, dass Informationen an einen Kunden weitergegeben werden.
server.error.include-message
undserver.error.include-binding-errors
kann verwendet werden, um die Aufnahme der Nachricht bzw. Bindungsfehler zu steuern. Unterstützte Werte sindalways
,on-param
undnever
.
So können Sie beispielsweise in Ihrer Anwendungskonfiguration festlegen, dass diese angezeigt, message
aber nicht trace
ausgegeben werden (YAML-Beispiel):
server:
error:
include-message: ALWAYS
include-stacktrace: NEVER
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen