カスタム ErrorDecoder を実装しました。
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);
}
}
}
これで達成したいことWebShopErrorDecoder
は、エラー応答を転送することです。私の問題は、応答ステータスが 404 の場合、ErrorResourceerror
が null であることです。
たとえば、返された応答ステータスを 400 に変更すると、エラー リソースに応答が含まれます。
消費されたサービスをブラウザから直接リクエストすると、レスポンス ステータスが 404 のレスポンス ボディが表示されます。
サービスが 404 を返すときに偽のリクエストのレスポンス本文が空になるのはなぜですか? レスポンスボディを取得する方法はありますか?
ふりをし始めたばかりなので、質問が不明な場合はお知らせください。何が欠けているのかを明確にしようとします。
前もって感謝します!