Ich habe eine benutzerdefinierte ErrorDecoder implementiert:Netflix Feign: Antwort Körper leer in ErrorDecoder auf 404
public class WebShopErrorDecoder implements ErrorDecoder {
@Override
public Exception decode(String methodKey, Response response) {
JacksonDecoder jacksonDecoder = new JacksonDecoder();
try {
ErrorResource error = (ErrorResource) jacksonDecoder.decode(response, ErrorResource.class);
return new EShopRequestException(error, HttpStatus.valueOf(response.status()));
} catch (IOException e) {
return new EShopRequestException(new ErrorResource("error.internal", "Internal server error"),
HttpStatus.INTERNAL_SERVER_ERROR);
}
}
}
Was ich mit diesem WebShopErrorDecoder
ist erreichen wollen die Fehlerreaktion zu übermitteln. Mein Problem ist, dass, wenn der Antwortstatus 404 ist, die ErrorResource error
null ist.
Wenn ich den zurückgegebenen Antwortstatus zum Beispiel auf 400 ändern, enthält die Fehlerressource die Antwort.
Bei der Anforderung des verbrauchten Dienstes direkt über den Browser ich die Antwort Körper mit einer Antwortstatus von 404.
Warum ist die Antwort Körper einer feign Anforderung leer sehen kann, wenn der Dienst 404 zurückkehrt? Gibt es eine Möglichkeit, den Antworttext zu erhalten?
Ich fing gerade an, mit Schein zu arbeiten, also, wenn meine Frage unklar ist, lassen Sie mich bitte wissen, und ich versuche zu klären, was fehlt.
Vielen Dank im Voraus!